快速版-JS基础01书写位置

1.书写位置

2.标识符

3.变量

var:声明变量。

(1).变量的重新赋值

(2).变量的提升

打印结果:console.log(变量名)

第一个是你写在里面的。

第二个是实际运行的先后之分,变量名字在最前面。变量提升。

最后打印出来的结果

4.js引入到文件。

(1)嵌入到html

(2)引入本地独立的js文件 

(3)引入网络来源文件

5.注释与输出方式

注释

//和/* */

输出

alert:输出弹出框。

 <script>

    alert("我是懒羊羊")

  </script>

<script>

    document.write("我是输出到页面")

  </script>

console.log:输出在控制台。

6.数据类型

null、字符串、undefined、数值、boolean、对象

(1)原始数据类型:boolean、字符串、数值。

所有被双引号或者单引号包裹的都是字符串。

注意:下方单引号和双引号使用。

2.合成数据类型

null和undefined代表空值。

7.typeof运算符

控制台看运行结果。

8.算数运算符

++在后面先打印出来在自增。

9.赋值运算符

10.比较运算符

==:比较数值相等。

===:比较数值和类型相等。

11.boolean运算符

(2)&&且运算

都要

(3)||或运算

一个也行

12.条件语句-if语句

得出结果:x=2

(2)if  else

(3)条件语句之switch

如果不加break,他会把符合那个值得结果以及下面的都打印出来。

13.三元运算符

14.for循环

表达式可以省略,但是;不可以省略。

15.while循环

  var  i = 0;while(i <= 100){console.log(i);i++}

 var sum = 0;var i = 0;while(i <= 100){sum += i ;i++}console.log(sum);

16.break语句和continue语句

所以当前就不打印5,就打印6...了。

 17.字符串

只能单双嵌套或者双单嵌套。不能双双嵌套或者单单嵌套。

 var str4 = "懒羊羊当'好的'大厨"document.write(str4)

(2)如果非要单单或者双双使用。

 var str4 = "懒羊羊当\"好的\"大厨"

          document.write(str4)

(3)字符串非要换行呢?

18.字符串方法charAt():返回指定字符

19.字符串方法concat():拼接字符

concat:合并多个数组; 合并多个字符串

多个参数,逗号隔开。

 var i = "hello";var a = "world";var d = "!"var num = 100;var s = i.concat(a,d,num);console.log(s);

(2)简便方法:直接用+

但是他不会改变数值类型,如果是数字相加就是普通加法,若果是字符串相加就是拼接在一起

20.substring:取出子链

substring:子链。

包头不包尾。

21.substr():取出字串

22.indexOf():出现的位置

23.trim()去除两旁空格、制表符等

不能去除中间的空格。

24.split:分割字符

26.数组

(2多维数组)

(3)下标读取

有括号叫方法,没有括号叫属性。

(4)数组越界,返回undefined

27.数组遍历

(1)遍历数组三种方法:for 、while

   var username = ["amy" , "frank" , "ime" , "bob"];for(var i =0; i < 4 ; i++){console.log(username[i]);}console.log(username.length)// 改良for(var i =0; i < username.length ; i++){console.log(username[i]);}//whilevar i = 0;while(i < username.length){console.log(username[i]);i++;}

(2)for in

不用定义var i= 0;

28.数组静态方法Array.isArray()判断是否为数组

判断是否为数组。

30.数组方法push()和pop():添加删除数组,会改变原数组。

(2)push方法:可同时添加多条数据。

(3)pop:删除最后一个。

      var username = ["amy" , "frank" , "ime" , "bob"];username.pop()console.log(username);

31.数组方法shift()和unshift()。

可以打印出删除后的结果和删除的东西。

(2)shift可以遍历和清空数组。

这个打印出结果是undefined。

(3)unshift()

      var username = ["amy" , "frank" , "ime" , "bob"];username.unshift("xhh" , "htl");console.log(username);

32.数组方法join():把数组变成字符串。

(1)常见分割

(2)如果是null或者undefined

(3)join和split可以实现数组和字符串的互换。

33.数组方法concat。--合并数组。 

(1)+和concat的区别

      var username = ["amy" , "frank" , "ime" , "bob"];var i = ["123" , "ABC"];console.log(i + username);//用+打印出来是数组console.log(username.concat(i));//这才是拼接

不仅可以合并一个,可以合并多个。

(2)可以合并其他参数

eg:

         var i = ["123" , "ABC"];

    console.log(i.concat(20 ,30));

结果:

34.数组方法reverse():反转。

// var username = ["amy" , "frank" , "ime" , "bob"];// console.log(username.reverse());// console.log()

(2)字符串反转

先分割字符spilt成数组,在反转数组revers,在join他成字符串。

      var i = "helloworld";var o = i.split("");o.reverse();console.log(o.join(""));

35.数组方法indexOf

返回第一次出现的位置,就算数组中有很多个,返回结果是第一次出现的位置

      var username = ["amy" , "frank" , "ime" , "bob"];console.log(username.indexOf("ime"));console.log(username.indexOf("30"));

(2)从指定位置后开始搜索:搜索的东西,指定的位置。

      var username = ["amy" , "frank" , "ime" , "bob" ,"amy"];console.log(username.indexOf("amy" , 2));

36.函数

定义:可反复调用代码块。

(1)函数声明

        function add(){console.log("结果");}// 调用函数add();

(2)函数名的提升

可以先调用,后创建

(3)函数参数

function add( x , y ){console.log( x + y);}add(5,5);add(2,8);

(4)函数返回值

return后面的代码无效。

function  add(x , y){return x + y}var i = add(2,8);console.log(i);

37.对象:object

数字13也要加‘’

var i = {age:'13',name:'xhh'};

(2)在里面可调用方法、数组等。

调用数组时变量名+function

var i = {age:'13',name:'xhh',arry:["xhh" , "htl" ,"lyy"],flag:true,getname:function(){console.log("iwen");}}

(3)对象的调用:对象名.属性

        var i = {age:'13',name:'xhh',arry:["xhh" , "htl" ,"lyy"],flag:true,getname:function(){console.log("iwen");}}console.log(i.age);// 方法的调用不同于以上i.getname();

(4)链式调用

        var i = {o:{p:[10 ,20],a:[30 , 40]}};console.log(i.o.p); 

38.Math对象

(1)Math.abs()          绝对值的英文是 "absolute value"。

      var i =-100 ;console.log(Math.abs(i));

(2)Math.max()  \   Math.min()

      console.log(Math.max(10 ,29));

(3)Math.floor()  \   Math.ceil()

      console.log(Math.floor(10.29));console.log(Math.ceil(11.5));

(4)Math.random()

console.log(Math.random());

(5)生成一个10-20的随机数

      function i(min ,max){var re = Math.random() * (max - min) + min ;re = Math.floor(re);console.log(re);}i(10,20);

38.DATE对象

(1)Date.now()

      console.log(Date.now());//1716623007895console.log(Date(1716623007895));// 或者直接new进去,获取一个最新的。第二种方法console.log( new Date);

\

月份要加一

      // 月份从0-11.0是一月,11:是12月。所以要在后面加一console.log(new Date(1716623007895).getMoth() + 1);

打印结果:2024-5-25

      var year = new Date(1716623007895).getFullYear();var moth = new Date(1716623007895).getMonth() + 1;var day = new Date(1716623007895).getDate();console.log(year +"-" + moth + "-" + day);

更准确的一点

39.DOM

(1)节点

(2)节点类型

(3)节点数

(4)document

代码:

结果:

(5)三层节点关系

(6)Node.nodeType属性

40.document对象 --方法/获取元素

(1)document.getElementsByTagName()

类似数组

<body><div>hello</div><div>world</div><script>var divs = document.getElementsByTagName("div");console.log(divs);console.log(divs[0]);console.log(divs[1]);</script></body>

(2)document.getElementsByClassName()

例子二:

(3)document.getElementsByName()

(4)document.getElementById()

只读一个,不是一群

(5)H5之后的新的:document.querySelector()

跟id差不多,只返回第一个

注意,打印nav时候前面有.

    <div class="nav">1</div><div class="nav2">2</div><script>var nav = document.querySelector(".nav");var nav2 = document.querySelector(".nav2");console.log(nav);console.log(nav2);</script>

(6)获取多个

41.document--创建元素

(1)document.createElement()

    <script>var text = document.createElement("p");console.log(text);</script>

(2)document.createTextNode()

    <div class="nav">111</div><script>var text = document.createElement("p");var content = document.createTextNode("我是威威");console.log(text);console.log(content);</script>



(3)将文本放入标签中text.appendChild(content);

    <div class="nav">111</div><script>var text = document.createElement("p");var content = document.createTextNode("我是威威");console.log(text);console.log(content);text.appendChild(content);console.log(text);</script>

(4)document.createAttribute()

只有属性才是添加才是:setAttributeNode。其他都是appendChild

     <script>var id = document.createAttribute("id");//赋值id.value = "root";console.log(id);</script>

    <div id="container"></div><script>var text = document.createElement("p");var content = document.createTextNode("我是威威");//创建属性var id = document.createAttribute("id");//赋值id.value = "root";//将文本塞进标签:将子元素放进容器里面text.appendChild(content);// 将属性放进标签text.setAttributeNode(id);console.log(text);// 将这些放进页面里面var container = document.getElementById("container");// console.log(container);container.appendChild(text);</script>

42.Element对象_属性

(1)Element.id

    <div class="box"  id ="root">hello</div><script>var root = document.getElementById("root");// console.log(root.id);//rootroot.id = "roots";//将root变为roots</script>

(2)Element.className

(3)Element.classList

<div class="box"  id ="root">hello</div><script>var root = document.getElementById("root");console.log(root.classList.add("mybox")); root.classList.remove("box");if(root.classList.contains("box")){console.log("you");}else{console.log("meiyou");}</script>

(4).Element.innerHTML

<div class="box"  id ="root">hello</div><script>var root = document.getElementById("root");console.log(root.innerHTML);//读取console.log(root.innerHTML = "大家好全啊");//改写内容</script>

43.Element获取元素位置

(1)Element.clientHeight  ,    Element.clientWidth

  <title>Document</title><style>.box{width: 200px;height: 200px;border: 5px  solid red;padding: 10px;margin: 20px;background: green;}</style>
</head>
<body><div class="box" id="box"></div><script>var box = document.getElementById("box");console.log(box.clientWidth);console.log(box.clientHeight);</script>

(2)Element.scrollHeight  ,    Element.scrollWidth

(3)Element.scrollLeft , Element.scrollTop

(3)Element.offsetHeight    Element.offsetWidth

(4)Element.offsetLeft    , Element.offsetTop

44.CSS操作

(1)setAttribute

   <div class="box" id="box"></div><script>var box = document.getElementById("box")box.setAttribute("style","width:200px ; height:200px; background:red;" )</script>

(2)style属性

   <div class="box" id="box"></div><script>var box = document.getElementById("box")// box.setAttribute("style","width:200px ; height:200px; background:red;" )box.style.width = "300px";box.style.height ="300px";box.style.backgroundColor ="red";</script>

(3)cssText属性

   <div class="box" id="box"></div><script>var box = document.getElementById("box")// box.setAttribute("style","width:200px ; height:200px; background:red;" )//  box.style.width = "300px";//  box.style.height ="300px";//  box.style.backgroundColor ="red";box.style.cssText = "width:200px ; height:200px; background:red;"</script>

45.事件处理程序

(1)HTML事件处理

  <button  onclick="clickHandle()">按钮</button><script>function clickHandle(){console.log("点击了按钮");}</script>

(2)DOM0级事件处理

  <button id="btn">按钮</button><script>var btn = document.getElementById("btn");btn.onclick = function(){console.log("点击了吧");}

(3)DOM2级事件处理

  <button id="btn">按钮</button><script>var btn = document.getElementById("btn");btn.addEventListener("click",function(){console.log("点击了");})

46.事件类型之鼠标事件

前面要加on

    <button   id="btn1">单击</button><button   id="btn2">双击</button><button   id="btn3">鼠标按下</button><button   id="btn4">鼠标抬起</button><script>var btn1 = document.getElementById("btn1");var btn2 = document.getElementById("btn2");var btn3 = document.getElementById("btn3");var btn4 = document.getElementById("btn4");btn1.onclick = function(){console.log("单击事件");}btn2.ondbclick = function(){console.log("双击事件");}btn3.onmouseup= function(){console.log("鼠标抬起");}btn4.onmousedown= function(){console.log("鼠标按下");}</script>
  <style>.box{width: 200px;height: 200px;background-color: red;}</style>
</head>
<body><div class="box" id="btn4"></div><script>var btn4 = document.getElementById("btn4")btn4.onmousemove = function(){console.log("内部移动");}</script>

47.Event事件对象

<button id="btn">按钮</button><script>var btn = document.getElementById("btn");//Even事件对象,其实就是参数btn.onclick = function(event){console.log(event);}</script>

(1)Event.target:点什么就返回什么

<button id="btn">按钮</button><script>var btn = document.getElementById("btn");//Even事件对象,其实就是参数btn.onclick = function(event){// console.log();event.target.innerHTML = "点击之后"//点击  按钮  变成  点击之后}</script>

(2)Event.type

<body>
<button id="btn">按钮</button><script>var btn = document.getElementById("btn");//Even事件对象,其实就是参数btn.onclick = function(event){console.log(event.type);//click    看添加的是什么事件}</script>

(3) 阻止浏览器跳转preventDefault();

    <a href="https://itbaizhan.com" id="it">itbaizhan</a><script>var it = document.getElementById("it");it.onclick = function(e){e.preventDefault();console.log("dianji ");}</script>

(4)stopPropagation();

  <style>.root{width: 200px;height: 200px;background-color: #999;}.box{width: 100px;height: 100px;background-color: red;}</style>
</head>
<body><div class="root" id="root"><div class="box" id="box"></div></div><script>var root = document.getElementById("root");var box = document.getElementById("box");root.onclick = function(){console.log("root");}box.onclick = function(e){e.stopPropagation();console.log("box");}</script>

点击红色的盒子不加e 会显示root和box,但加了e只会显示box

48.键盘事件

49.表单事件

(1)input事件

    <input type="text" id="username"><script>
var username = document.getElementById("username");
username.oninput = function(e){console.log(e.target.value);
}</script>

(2)select事件

(3)change事件:不会连续触发,统一完成之后才会触发

(4)reset事件和submit事件

50.事件代理

51. 定时器setTimeout

  <script>setTimeout(function(){console.log("三秒之后打印");},3000)</script>

以下是举例说明

如果想要只想局部,将 var that = this

(2)取消定时器

  <script>var TIMER =  setTimeout(function(){console.log("三秒之后打印");},3000)clearTimeout(TIMER)</script>

52.定时器setlnterval()

    <script>
// 每间隔一秒打印一回var i = 0;setInterval(function(){i++console.log(i);},1000)</script>

53.防抖(debounce)

54.节流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/17028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Delphi 开发Android Service四种模式初探

前言&#xff1a; 本篇文章正经来说&#xff0c;其实算是我的学习履历&#xff0c;是我在不断的摸索过程中&#xff0c;总结的经验&#xff0c;不能算是一篇正经的学术文章。现在DELPHI的学习资料太少了&#xff0c;就算是有也都是基于老版本DELPHI&#xff0c;或VCL相关的内容…

26计算机操作系统408考研--操作系统设备管理篇章(五)

文章目录 一、设备是什么&#xff1f;设备管理目标和任务I/O设备分类 二、I/O系统控制方式程序直接控制方式中断控制方式DMA控制方式通道控制方式 I/O软件的组成I/O软件设计目标和原则I/O软件结构设备驱动程序设备无关软件用户层软件用户层的I/O软件 具有通道的设备管理通 道通…

Day37 代码随想录打卡|二叉树篇---对称二叉树

题目&#xff1a; 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 方法&#xff1a;本体可以用递归和迭代两种方法&#xff0c;但我更喜欢迭代的方式&#xff0c;因此使用迭代的方式做一下。首先我们分析一下不对称的情况。因为对称的情况很简单&#xff0c;即两…

实现一个简单的 Google Chrome 扩展程序

目录 &#x1f9ed; 效果展示 # 图示效果 a. 拓展程序列表图示效果&#xff1a; b. 当前选项卡页面右键效果&#xff1a; c. 拓展程序消息提示效果&#xff1a; &#x1f4c7; 项目目录结构 # 说明 # 结构 # 文件一览 ✍ 核心代码 # manifest.json # background.j…

星融元获2024网络开源优秀创新成果奖!

5月25日&#xff0c;星融元受邀参加2024年第四届网络开源技术生态大会&#xff0c;分享主题为“开放的网络 开放的AI生态”主题演讲&#xff0c;深受现场用户的认可&#xff1b;《Easy RoCE&#xff1a;基于SONiC、Klish和Prometheus的极简无损网络解决方案》获得2024网络开源优…

SpheroGPT: 声控自然语言编程 AI 玩具 Demo 具身智能 图文解说 完全开源机器人

背景介绍 因为生病请了长假. 一周前状态开始恢复, 于是尝试用 LLM (ChatGPT3.5) + Sphero 开发一个可以声控自然语言编程的 AI 玩具, 作为学习 ChatGPT 应用开发的方法. 差不多十天时间把开发目标基本都实现了, 这里和大家分享一下心得体会. Demo 示例视频 先把录制的几个 d…

云原生Kubernetes: 云主机部署K8S 1.30版本 单Master架构

目录 一、实验 1.环境 2.Termius连接云主机 3.网络连通性与安全机制 4.云主机部署docker 5.云主机配置linux内核路由转发与网桥过滤 6.云主机部署cri-dockerd 7.云主机部署kubelet,kubeadm,kubectl 8.kubernetes集群初始化 9.容器网络&#xff08;CNI&#xff09;部署…

Docker学习笔记 - 创建自己的image

目录 基本概念常用命令使用docker compose启动脚本创建自己的image 使用Docker是现在最为流行的软件发布方式&#xff0c; 本系列将阐述Docker的基本概念&#xff0c;常用命令&#xff0c;启动脚本和如何生产自己的docker image。 在我们发布软件时&#xff0c;往往需要把我…

解析边缘计算网关的优势-天拓四方

随着信息化、智能化浪潮的持续推进&#xff0c;计算技术正以前所未有的速度发展&#xff0c;而边缘计算网关作为其中的重要一环&#xff0c;以其独特的优势正在逐步改变我们的生活方式和工作模式。本文将详细解析边缘计算网关的优势。 首先&#xff0c;边缘计算网关具有显著的…

uniapp页面vue3下拉触底发送获取新数据请求实现分页功能

页面下拉触底获取新数据实现分页功能实现方式有两种&#xff0c;根据自己的业务需求来定&#xff0c;不同的方案适用场景不一样&#xff0c;有的是一整个页面下拉获取新数据&#xff0c;有的是部分盒子内容滚动到底部时候实现获取新数据&#xff0c;下面讨论一下两种方式的区别…

JSON-RPC跨域通信:Python服务器端解决方案与Js客户端 Mozilla扩展程序

问题背景 构建一个 Mozilla 扩展程序&#xff0c;与远程服务器上的 Python 应用程序进行通信以发送和接收数据。Python 应用程序可以通过 Python 控制台使用 xml-rpc 调用。尝试设计一个 JSON-RPC 来联系同一个应用程序。开发 Python 服务器端&#xff0c;可以通过 python 控制…

【高数】重点内容,公式+推导+例题,大学考试必看

目录 1 隐函数求导1.1 公式1.2 说明1.3 例题 2 无条件极值2.1 运用2.2 求解2.3 例题 3 条件极值3.1 运用3.2 求解3.3 例题 4 二重积分4.1 直角坐标下4.2 极坐标下4.3 例题 5 曲线积分5.1 第一型曲线积分5.2 第二型曲线积分5.3 例题 6 格林公式6.1 公式6.2 说明6.3 例题 &#x…

Postman进阶功能-集合分支管理与编写接口文档

大家好&#xff0c;在接口测试的领域中&#xff0c;我们不断追求更高效、更便捷、更强大的方法与工具。而 Postman 作为一款备受青睐的接口测试工具&#xff0c;其进阶功能更是为我们打开了新的天地。在这其中&#xff0c;集合分支管理与编写接口文档的功能显得尤为重要。 当面…

作业-day-240527

Cday1思维导图 定义自己的命名空间my_sapce&#xff0c;在my_sapce中定义string类型的变量s1&#xff0c;再定义一个函数完成对字符串的逆置 #include <iostream>using namespace std;namespace my_space {string s1"abc123";string recover(string s){int i0…

go-zero 实战(3)

引入 Redis 在之前的 user 微服务中引入 redis。 1. 修改 user/internal/config/config.go package configimport ("github.com/zeromicro/go-zero/core/stores/cache""github.com/zeromicro/go-zero/zrpc" )type Config struct {zrpc.RpcServerConfMys…

Overall Accuracy(OA)、Average Accuracy(AAcc)计算公式

以二分类为例&#xff1a;1.总体精度(Overall Accuracy, OA)&#xff1a;样本中正确分类的总数除以样本总数。 OA(TPTN)/(TPFNFPTN)2.平均精度(Average Accuracy, AA)&#xff1a;每一类别中预测正确的数目除以该类总数&#xff0c;记为该类的精度&#xff0c;最后求每类精度的…

2022全国大学生数学建模竞赛ABC题(论文+代码)

文章目录 &#xff08;1&#xff09;2022A波浪能最大输出功率&#xff08;2&#xff09;2022B无人机定位&#xff08;3&#xff09;2022C古代玻璃制品成分分析&#xff08;4&#xff09;论文和代码链接 &#xff08;1&#xff09;2022A波浪能最大输出功率 &#xff08;2&#x…

su模型转3d模型不够平滑怎么办?---模大狮

当将SU模型转换为3D模型时&#xff0c;可能会遇到模型不够平滑的情况&#xff0c;这会影响到最终的渲染效果和视觉体验。本文将探讨在此情况下应该如何解决&#xff0c;帮助读者更好地处理这一常见的问题。 一、检查SU模型细分程度 首先要检查的是原始的SU模型的细分程度。在S…

XSKY CTO 在英特尔存储技术峰会的演讲:LLM 存储,架构至关重要

5 月 17 日&#xff0c;英特尔存储技术峰会在北京顺利举办。作为英特尔长期的合作伙伴&#xff0c;星辰天合受邀参加了此次峰会。星辰天合 CTO 王豪迈作为特邀嘉宾之一&#xff0c;作了主题为《LLM 存储&#xff1a;架构至关重要》的演讲&#xff0c;分享了大语言模型&#xff…

2024年中国金融行业网络安全案例集

随着科技的飞速发展,金融行业与信息技术的融合日益加深,网络安全已成为金融行业发展的生命线。金融行业作为国家经济的核心支柱&#xff0c;正在面临着日益复杂严峻的网络安全挑战。因此&#xff0c;深入研究和探讨金融行业的网络安全问题&#xff0c;不仅关乎金融行业的稳健运…