Python JavaScript
<h2 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">JavaScript</span></h2><h3 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">一 JavaScript是什么(html网页的动态效果):</span></h3>
<p><span class="md-plain md-expand"> <span class="md-plain md-expand">JavaScript(下文我们会用简称JS来代替)是脚本编程语言,JS语言开发的文件是以.js为后缀,通过在html文件中引入该js文件来控制html代码的交互功能以及前台数据处理的业务逻辑(js语言代码也可以直 接写在html文件中),采用的<span class=" md-link"><span class="md-plain">ECMAScript</span><span class="md-plain">语法,属于编程语言。</span></span></span></span></p>
<p><span class="md-plain md-expand"><span class="md-plain md-expand"><span class=" md-link"><span class="md-plain">注意:</span></span></span></span>JavaScript跟Java没有半毛钱关系,纯粹是为了蹭当时红极一时java的热度.</p>
<h3 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">二 JavaScript三种书写位置(css也是三种)</span></h3>
<h4 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">① 行间式(JS代码书写在标签的事件全局属性中,采用的是JS编程语言的语法)</span></h4>
<div class="cnblogs_code">
<pre><!-- 关键代码 -->
<!-- 给div标签添加点击事件的交互逻辑:弹出文本提示框 -->
<div onclick="alert('点击我完成页面交互')">点我</div></pre>
</div>
<h4 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">② 内联式(JS代码书写在script标签中)</span></h4>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">JS代码书写在script标签中,script标签可以出现在页面中的任意位置,建议放在body标签的最后(html代码<br>是自上而下进行解析加载,放在body标签的最下方,会保证页面所有标签都加载完毕,html再去加载js文件,<br>那么js脚步文件就会更好的控制页面标签的人机交互了),采用的是JS编程语言的语法
</span><!-- 关键代码 -->
<!-- 页面被加载打开时,就会触发事件的交互逻辑:弹出文本提示框 -->
<body>
<!-- body标签中的所有子标签位置 -->
<!-- script标签出现在body标签的最下方 -->
<script><span style="color: rgba(0, 0, 0, 1)">
alert(</span>'该页面被加载!'<span style="color: rgba(0, 0, 0, 1)">)
</span></script>
</body></pre>
</div>
<h4 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">③ 外联式(文件引入)</span></h4>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">JS代码书在外部js文件中,在html页面中用script标签引入js文件(建议在body标签最下方引入,理由同上)
#</span>1<span style="color: rgba(0, 0, 0, 1)">.js文件夹下的my.js
alert(</span>'外联式js文件弹出框'<span style="color: rgba(0, 0, 0, 1)">)
#</span>2<span style="color: rgba(0, 0, 0, 1)">.根目录下的first.html
</span><!-- 关键代码 -->
<!-- 页面被加载打开时,就会触发事件的交互逻辑:弹出文本提示框 -->
<body>
<!-- body标签中的所有子标签位置 -->
<!-- script标签出现在body标签的最下方 -->
<script src="js/my.js">
<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> 不要在此写JS代码,原因是用来引入外部js文件的script标签,标签内部书写的JS代码不在起作用 </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
</script>
</body></pre>
</div>
<p>总结:</p>
<div class="cnblogs_code"><img id="code_img_closed_af88092f-36f3-4831-b149-ae8aa99c1f9e" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_af88092f-36f3-4831-b149-ae8aa99c1f9e" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_af88092f-36f3-4831-b149-ae8aa99c1f9e" class="cnblogs_code_hide">
<pre><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
<style><span style="color: rgba(0, 0, 0, 1)">
#dd {
width: 200px;
height: 200px;
background</span>-<span style="color: rgba(0, 0, 0, 1)">color: orange;
}
</span></style>
</head>
<body>
<!-- 点击弹出:hello js -->
<!--行间式: 写在标签的 事件属性 中-->
<!--<div id="dd" onclick="alert('hello js')"></div>-->
<div id="dd"></div>
</body>
<!--内联式:写在script标签中,script标签应该出现在body的最下方(可以将其放在body结束后)-->
<script><span style="color: rgba(0, 0, 0, 1)">
dd.onclick </span>= <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> () {
alert(</span>'hello js'<span style="color: rgba(0, 0, 0, 1)">)
}
</span></script>
<!--外联式:通过script标签的src属性,链接外部js文件-->
<script src="js/js导入.js">
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 一个script标签拥有src引入外部js文件后,就相当于单标签,所以内部的代码会被自动屏蔽</span>
dd.onclick = <span style="color: rgba(0, 0, 255, 1)">function</span> () {<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 不会起作用</span>
alert(666<span style="color: rgba(0, 0, 0, 1)">)
}
</span></script>
</html></pre>
</div>
<span class="cnblogs_code_collapse">三种引入总结</span></div>
<p> </p>
<h3 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">三 JavaScript注释</span></h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">#1.js注释:
单行注释 </span>/单行内容/<span style="color: rgba(0, 0, 0, 1)">
多行注释 </span>/多行内容/</pre>
<pre><br>#2.js语言是以分号(;)作为语句的结束符<br> 一般情况下不加分号也不会报错 </pre>
</div>
<h3 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">四 </span><span class="md-plain md-expand"> JavaScript基础语法</span></h3>
<p><span class="md-plain md-expand">https://www.cnblogs.com/Dominic-Ji/p/9111021.html</span></p>
<h4 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">① 变量的定义(变量名是区分大小写的,var与python一样可覆盖赋值let不可以)</span></h4>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">ECMA6最新语法
<strong>#</strong></span><strong>1</strong><span style="color: rgba(0, 0, 0, 1)"><strong>.变量关键字var与let的区别:</strong>
var作用的是全局
let作业的是局部,可以保证变量的不被随意的修改(<strong>指的是是所声明的变量只在let命令所在的代码块内有效。例如:for循环的计数器就很适合使用let命令</strong>。)
例:
</span><span style="color: rgba(0, 0, 255, 1)">var</span>/let是关键词、num是变量名、=为赋值符、10为变量值、;为JS语言语句的结束标识符
<span style="color: rgba(0, 0, 255, 1)">var</span> num = 10<span style="color: rgba(0, 0, 0, 1)">;<br><br></span>for (let i=0;i<arr.length;i++){...}</pre>
<pre><span style="color: rgba(0, 0, 0, 1)"> #</span><strong>2</strong><span style="color: rgba(0, 0, 0, 1)"><strong>.在js中 是有真正意义上的常量,声明常量关键字</strong>const<br>const PI </span>= 3.14<span style="color: rgba(0, 0, 0, 1)">;(常量声明时必须赋初值,且一旦赋值,不可改变)<br> #</span>3<span style="color: rgba(0, 0, 0, 1)">.变量的命名规范 <br></span>1<span style="color: rgba(0, 0, 0, 1)">. 由<strong>字母,数字,_,$组成</strong>,不能以数字开头(可以包含中文字符) </span>2<span style="color: rgba(0, 0, 0, 1)">. 区分大小写 </span>3. 不能出现关键字及保留字<br> #4.注意</pre>
<p><span class="s2"> <strong>变量名是区分大小写的。</strong></span></p>
<p><span class="s2"> 推荐使用驼峰式命名规则。</span></p>
<p><span class="s2"> 保留字不能用做变量名。</span></p>
</div>
<h4 class="md-end-block md-heading md-focus"><span class="md-plain md-expand">② 基本数据类型</span></h4>
<p><span class="md-plain md-expand">#1.数值类型:number(</span>js中将整型和浮点型统称为数值类型<span class="md-plain md-expand">)</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">var</span> num = 10<span style="color: rgba(0, 0, 0, 1)">;
const PI </span>= 3.14<span style="color: rgba(0, 0, 0, 1)">;
console.log(</span><span style="color: rgba(0, 0, 255, 1)">typeof</span>(num), num);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 结果:number10</span>
<span style="color: rgba(0, 0, 0, 1)">
NaN:是数值类型但是表示的意思是不是一个数字</span></pre>
</div>
<p>#2.字符串类型:string(单双引号定义)</p>
<div class="cnblogs_code"><img id="code_img_closed_17ba1f7d-db69-42f7-acc1-d745529622c5" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_17ba1f7d-db69-42f7-acc1-d745529622c5" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_17ba1f7d-db69-42f7-acc1-d745529622c5" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 0, 255, 1)">var</span> s1 = "双引号可以表示字符串"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">var</span> s2 = '单引号可以表示字符串'<span style="color: rgba(0, 0, 0, 1)">;
console.log(</span><span style="color: rgba(0, 0, 255, 1)">typeof</span>(s1), s1);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 结果:string双引号可以表示字符串</span></pre>
</div>
<span class="cnblogs_code_collapse">字符串定义</span></div>
<p> <img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907191209016-919678833.png" alt=""> </p>
<div class="cnblogs_code"><img id="code_img_closed_b97379eb-01b0-490e-aff0-01ed7e81f58c" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_b97379eb-01b0-490e-aff0-01ed7e81f58c" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_b97379eb-01b0-490e-aff0-01ed7e81f58c" class="cnblogs_code_hide">
<pre> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 字符串</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 1)定义:</span>
let ss = '123abc呵呵'<span style="color: rgba(0, 0, 0, 1)">;
let res;
console.log(ss);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 2)索引</span>
res = ss;
console.log(res);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 3)切片</span>
res = ss.slice(3, 6<span style="color: rgba(0, 0, 0, 1)">);
console.log(res);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 4)替换</span>
res = ss.replace('abc', 'ABC'<span style="color: rgba(0, 0, 0, 1)">);
console.log(res);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 5)拆分: string => array</span>
res = ss.split(''<span style="color: rgba(0, 0, 0, 1)">);
console.log(res);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 6) 拼接</span>
res = ss +<span style="color: rgba(0, 0, 0, 1)"> ss;
console.log(res);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 7) 迭代</span>
<span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> (s of ss) {
console.log(s);
}</span></pre>
</div>
<span class="cnblogs_code_collapse">事例</span> </div>
<div class="cnblogs_code"><img id="code_img_closed_0a5601c8-98ec-4243-8191-c4c14f49d354" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_0a5601c8-98ec-4243-8191-c4c14f49d354" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_0a5601c8-98ec-4243-8191-c4c14f49d354" class="cnblogs_code_hide">
<pre>#1<span style="color: rgba(0, 0, 0, 1)">.string.slice(start, stop)和string.substring(start, stop):
两者的相同点:
如果start等于end,返回空字符串
如果stop参数省略,则取到字符串末
如果某个参数超过string的长度,这个参数会被替换为string的长度
substirng()的特点:
如果 start </span>><span style="color: rgba(0, 0, 0, 1)"> stop ,start和stop将被交换
如果参数是负数或者不是数字,将会被0替换
silce()的特点:
如果 start </span>><span style="color: rgba(0, 0, 0, 1)"> stop 不会交换两者
如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)
#</span>2<span style="color: rgba(0, 0, 0, 1)">.字符串拼接推荐使用加号
#</span>3.万能占位符:${变量名}</pre>
</div>
<span class="cnblogs_code_collapse">字符串拼接 占位符 substring与slice区别</span></div>
<p>#字符串和数值类型补充</p>
<div class="cnblogs_code">
<pre>parseInt("123")<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 返回123</span>
parseInt("ABC")<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 返回NaN,NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。</span>
parseFloat("123.456")<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 返回123.456</span></pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907202024365-1778541573.png" alt=""></p>
<p> </p>
<p> </p>
<p> </p>
<p>#3.数组(类似于python中的列表)</p>
<div class="cnblogs_code"><img id="code_img_closed_5ee5008e-31db-4484-8dac-34a0162f1fac" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_5ee5008e-31db-4484-8dac-34a0162f1fac" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_5ee5008e-31db-4484-8dac-34a0162f1fac" class="cnblogs_code_hide">
<pre>let arr = ;
console.log(arr, </span><span style="color: rgba(0, 0, 255, 1)">typeof</span>(arr)); 'object'</pre>
</div>
<span class="cnblogs_code_collapse">数组定义</span></div>
<p><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907193206373-2139527622.png" alt=""></p>
<div class="cnblogs_code"><img id="code_img_closed_cfb67bd3-3c92-4781-b81a-194f7066f10c" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_cfb67bd3-3c92-4781-b81a-194f7066f10c" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_cfb67bd3-3c92-4781-b81a-194f7066f10c" class="cnblogs_code_hide">
<pre> let arr = ;
res </span>= arr.join('');<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 默认,|''|'自定义符合'</span>
<span style="color: rgba(0, 0, 0, 1)"> console.log(res);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 迭代</span>
<span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> (a of arr) {
console.log(a);
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 排序</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> arr.sort();</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> arr.reverse();</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log(arr);</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 增删改查</span>
console.log(arr);
arr[</span>4] = 555<span style="color: rgba(0, 0, 0, 1)">;
console.log(arr[</span>4<span style="color: rgba(0, 0, 0, 1)">]);
arr.push(</span>100);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 尾增</span>
arr.unshift(200);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 头增</span>
<span style="color: rgba(0, 0, 0, 1)"> console.log(arr);
arr.pop();</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 尾删</span>
arr.shift();<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 头增</span>
<span style="color: rgba(0, 0, 0, 1)"> console.log(arr);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 重点:增删改</span>
<span style="color: rgba(0, 0, 0, 1)"> console.log(arr);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 开始操作的索引 操作的长度 操作后的结果(不定长0~n个)</span>
arr.splice(2, 1, 222, 333, 444<span style="color: rgba(0, 0, 0, 1)">);
console.log(arr);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 不定长参数</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> f(...a) {
console.log(a)
}
f(</span>1, 2, 3, 4, 5, 6)</pre>
</div>
<span class="cnblogs_code_collapse">常用内置方法</span></div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">遍历数组元素
</span><span style="color: rgba(0, 0, 255, 1)">var</span> a = ;
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(0, 0, 255, 1)">var</span> i=0;i<a.length;i++<span style="color: rgba(0, 0, 0, 1)">) {
console.log(a);
}</span></pre>
</div>
<p> </p>
<p><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907194000522-1247186090.png" alt=""></p>
<p> </p>
<p> </p>
<p> <img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907194017706-1593652277.png" alt=""></p>
<p><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907200656377-1071430677.png" alt=""></p>
<p> </p>
<p> </p>
<p> <img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907200727357-1846019169.png" alt=""></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>#4.对象类型(相当于dict所有的key必须是字符串)</p>
<div class="cnblogs_code"><img id="code_img_closed_c5b3d6c1-eb60-41c7-b3fb-fcfc02a65d25" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_c5b3d6c1-eb60-41c7-b3fb-fcfc02a65d25" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_c5b3d6c1-eb60-41c7-b3fb-fcfc02a65d25" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 增删改查</span>
dic =<span style="color: rgba(0, 0, 0, 1)"> {};
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 增</span>
dic['name'] = 'owen'<span style="color: rgba(0, 0, 0, 1)">;
dic.age </span>= 18<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 改</span>
dic.age = 20<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 对象的删除</span>
<span style="color: rgba(0, 0, 255, 1)">delete</span><span style="color: rgba(0, 0, 0, 1)"> dic.age;
console.log(dic);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 查</span>
<span style="color: rgba(0, 0, 0, 1)"> console.log(dic.name);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 字典的迭代用 for in</span>
<span style="color: rgba(0, 0, 255, 1)">for</span> (k <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> dic) {
console.log(k);
}</span></pre>
</div>
<span class="cnblogs_code_collapse">对象定义和常用方法</span></div>
<p><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907195259372-1912456088.png" alt=""></p>
<p> </p>
<p><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907195619359-576637529.png" alt=""></p>
<p> </p>
<p> </p>
<p> #data对象</p>
<div class="cnblogs_code"><img id="code_img_closed_7e6863a2-1d83-4bbf-9baa-c71a1d0db1a3" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_7e6863a2-1d83-4bbf-9baa-c71a1d0db1a3" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_7e6863a2-1d83-4bbf-9baa-c71a1d0db1a3" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 0, 0, 1)">#创建对象
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">方法1:不指定参数</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> d1 = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> Date();
console.log(d1.toLocaleString());
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">方法2:参数为日期字符串</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> d2 = <span style="color: rgba(0, 0, 255, 1)">new</span> Date("2004/3/20 11:12"<span style="color: rgba(0, 0, 0, 1)">);
console.log(d2.toLocaleString());
</span><span style="color: rgba(0, 0, 255, 1)">var</span> d3 = <span style="color: rgba(0, 0, 255, 1)">new</span> Date("04/03/20 11:12"<span style="color: rgba(0, 0, 0, 1)">);
console.log(d3.toLocaleString());
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">方法3:参数为毫秒数</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> d3 = <span style="color: rgba(0, 0, 255, 1)">new</span> Date(5000<span style="color: rgba(0, 0, 0, 1)">);
console.log(d3.toLocaleString());
console.log(d3.toUTCString());
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">方法4:参数为年月日小时分钟秒毫秒</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> d4 = <span style="color: rgba(0, 0, 255, 1)">new</span> Date(2004,2,20,11,12,0,300<span style="color: rgba(0, 0, 0, 1)">);
console.log(d4.toLocaleString());</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">毫秒并不直接显示</span>
<span style="color: rgba(0, 0, 0, 1)">
#常用方法
</span><span style="color: rgba(0, 0, 255, 1)">var</span> d = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> Date();
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">getDate() 获取日</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)">getDay () 获取星期</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)">getMonth () 获取月(0-11)</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)">getFullYear () 获取完整年份</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)">getYear () 获取年</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)">getHours () 获取小时</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)">getMinutes () 获取分钟</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)">getSeconds () 获取秒</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)">getMilliseconds () 获取毫秒</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)">getTime () 返回累计毫秒数(从1970/1/1午夜)</span></pre>
</div>
<span class="cnblogs_code_collapse">data对象</span></div>
<p>#5.布尔类型(小写:true和false)</p>
<div class="cnblogs_code"><img id="code_img_closed_f5cdbd93-7803-4bb5-b773-56cfa04807e2" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_f5cdbd93-7803-4bb5-b773-56cfa04807e2" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_f5cdbd93-7803-4bb5-b773-56cfa04807e2" class="cnblogs_code_hide">
<pre>""(空字符串)、0、<span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">、undefined、NaN都是false。
</span><span style="color: rgba(0, 0, 255, 1)">var</span> b1 = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">var</span> b2 = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
console.log(</span><span style="color: rgba(0, 0, 255, 1)">typeof</span>(b1), b1);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 结果:booleantrue</span>
<span style="color: rgba(0, 0, 0, 1)">
null和undefined区别:
null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name</span>=<span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
ull表示变量的值是空(null可以手动清空一个变量的值,使得该变量变为object类型,值为null),undefined则表示只声明了变量,但还没有赋值。</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<h4 class="md-end-block md-heading md-focus" style="box-sizing: border-box; break-after: avoid-page; break-inside: avoid; font-size: 1.25em; margin-top: 1rem; margin-bottom: 1rem; position: relative; line-height: 1.4; cursor: text; white-space: pre-wrap; color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif"><span class="md-plain md-expand" style="box-sizing: border-box">③ 运算符</span></h4>
<p><span class="md-plain md-expand" style="box-sizing: border-box"><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907202311363-1090938765.png" alt=""></span></p>
<p> </p>
<p> </p>
<p><span class="md-plain md-expand" style="box-sizing: border-box"><span style="color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; orphans: 4; white-space: pre-wrap">#1.赋值运算符</span></span></p>
<p> </p>
<p><span class="md-plain md-expand" style="box-sizing: border-box"><span class="md-plain md-expand" style="box-sizing: border-box"><span style="color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; orphans: 4; white-space: pre-wrap"><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907202433350-104969245.png" alt=""></span></span></span></p>
<p> </p>
<p> </p>
<p> 注意:</p>
<p><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907202448456-137577180.png" alt=""></p>
<p> </p>
<p>#2.比较运算符</p>
<p> </p>
<p> <img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907202517514-1190070778.png" alt=""></p>
<p> </p>
<p> </p>
<p> 注意</p>
<div class="cnblogs_code">
<pre>let aaa = 123<span style="color: rgba(0, 0, 0, 1)">;
let bbb </span>= '123'<span style="color: rgba(0, 0, 0, 1)">;
console.log(aaa </span>== bbb);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> == 只做数据比较 true</span>
console.log(aaa === bbb);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> === 做数据与类型比较 false<br></span></pre>
<pre><span style="margin: 0; padding: 0; color: rgba(0, 128, 0, 1); line-height: 1.5 !important">//上面这张情况出现的原因在于JS是一门弱类型语言(会自动转换数据类型),所以当你用两个等号进行比较时,JS内部会自动先将<br style="margin: 0; padding: 0">//数值类型的1转换成字符串类型的1再进行比较,所以我们以后写JS涉及到比较时尽量用三等号来强制限制类型,防止判断错误</span></pre>
<pre></pre>
</div>
<p>#3.<span style="color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; orphans: 4; white-space: pre-wrap">逻辑运算符</span></p>
<p><span style="color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; orphans: 4; white-space: pre-wrap"><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907203013354-345164818.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> #4.三目运算符</p>
<div class="cnblogs_code">
<pre>/ 得到结果 = 条件表达式 ? 条件成立结果 1<span style="color: rgba(0, 0, 0, 1)">: 条件不成立结果2;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 语法规则:条件表达式成立,将结果1赋值给结果,反正赋值结果2</span></pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907203417362-2096785728.png" alt=""></p>
<p> </p>
<p> </p>
<p> </p>
<h4 class="md-end-block md-heading md-focus" style="box-sizing: border-box; break-after: avoid-page; break-inside: avoid; font-size: 1.25em; margin-top: 1rem; margin-bottom: 1rem; position: relative; line-height: 1.4; cursor: text; white-space: pre-wrap; color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif"><span class="md-plain md-expand" style="box-sizing: border-box">④ 分支结构</span></h4>
<p><span class="md-plain md-expand" style="box-sizing: border-box">#if分支</span></p>
<div class="cnblogs_code"><img id="code_img_closed_f7461671-b612-46d6-8fe3-77df60c3c013" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_f7461671-b612-46d6-8fe3-77df60c3c013" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_f7461671-b612-46d6-8fe3-77df60c3c013" class="cnblogs_code_hide">
<pre>#1<span style="color: rgba(0, 0, 0, 1)">.基础语法
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (条件表达式) {
代码块;
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 1. 当条件表达式结果为true,会执行代码块;反之不执行</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)"> 2. 条件表达式可以为普通表达式</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)"> 3. 0、undefined、null、""、NaN为假,其他均为真</span>
<span style="color: rgba(0, 0, 0, 1)">
#</span>2<span style="color: rgba(0, 0, 0, 1)">.复杂语法
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 1.双分支</span>
<span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (表达式1) {
代码块1;
} </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
代码块2;
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 2.多分支</span>
<span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (表达式1) {
} </span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (表达式2) {
}
...
</span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (表达式2) {
} </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
}
事例1:
</span><span style="color: rgba(0, 0, 255, 1)">var</span> a = 10<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (a > 5<span style="color: rgba(0, 0, 0, 1)">){
console.log(</span>"yes"<span style="color: rgba(0, 0, 0, 1)">);
}</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
console.log(</span>"no"<span style="color: rgba(0, 0, 0, 1)">);
}
事例2:
</span><span style="color: rgba(0, 0, 255, 1)">var</span> a = 10<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (a > 5<span style="color: rgba(0, 0, 0, 1)">){
console.log(</span>"a > 5"<span style="color: rgba(0, 0, 0, 1)">);
}</span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (a < 5<span style="color: rgba(0, 0, 0, 1)">) {
console.log(</span>"a < 5"<span style="color: rgba(0, 0, 0, 1)">);
}</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
console.log(</span>"a = 5"<span style="color: rgba(0, 0, 0, 1)">);
}</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<div class="cnblogs_code"><img id="code_img_closed_2214630d-ccc5-4a57-ae24-f97274ada753" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_2214630d-ccc5-4a57-ae24-f97274ada753" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_2214630d-ccc5-4a57-ae24-f97274ada753" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 0, 0, 1)">#if嵌套
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (表达式1) {
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (表达式2) {
}
}</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<h4 class="md-end-block md-heading md-focus" style="box-sizing: border-box; break-after: avoid-page; break-inside: avoid; font-size: 1.25em; margin-top: 1rem; margin-bottom: 1rem; position: relative; line-height: 1.4; cursor: text; white-space: pre-wrap; color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif"><span class="md-plain md-expand" style="box-sizing: border-box"><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907205529376-234889331.png" alt=""></span></h4>
<p> </p>
<h4 class="md-end-block md-heading md-focus" style="box-sizing: border-box; break-after: avoid-page; break-inside: avoid; font-size: 1.25em; margin-top: 1rem; margin-bottom: 1rem; position: relative; line-height: 1.4; cursor: text; white-space: pre-wrap; color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif"> </h4>
<p> </p>
<h4 class="md-end-block md-heading md-focus" style="box-sizing: border-box; break-after: avoid-page; break-inside: avoid; font-size: 1.25em; margin-top: 1rem; margin-bottom: 1rem; position: relative; line-height: 1.4; cursor: text; white-space: pre-wrap; color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif"><span class="md-plain md-expand" style="box-sizing: border-box">#switch匹配</span></h4>
<div class="cnblogs_code"><img id="code_img_closed_72a5b77a-552a-4786-8cd0-b17f47cc80f7" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_72a5b77a-552a-4786-8cd0-b17f47cc80f7" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_72a5b77a-552a-4786-8cd0-b17f47cc80f7" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 0, 255, 1)">var</span> day = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> Date().getDay();
</span><span style="color: rgba(0, 0, 255, 1)">switch</span><span style="color: rgba(0, 0, 0, 1)"> (day) {
</span><span style="color: rgba(0, 0, 255, 1)">case</span> 0<span style="color: rgba(0, 0, 0, 1)">:
console.log(</span>"Sunday"<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">case</span> 1<span style="color: rgba(0, 0, 0, 1)">:
console.log(</span>"Monday"<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)">:
console.log(</span>"..."<span style="color: rgba(0, 0, 0, 1)">)
}
switch中的case子句通常都会加break语句,否则程序会继续执行后续case中的语句。</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p> </p>
<p><span class="md-plain md-expand" style="box-sizing: border-box"><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907204248457-284359685.png" alt=""></span></p>
<p> </p>
<p> </p>
<h4 class="md-end-block md-heading md-focus" style="box-sizing: border-box; break-after: avoid-page; break-inside: avoid; font-size: 1.25em; margin-top: 1rem; margin-bottom: 1rem; position: relative; line-height: 1.4; cursor: text; white-space: pre-wrap; color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif"><span class="md-plain md-expand" style="box-sizing: border-box">⑤ 循环结构</span></h4>
<p><span class="md-plain md-expand" style="box-sizing: border-box">#for循环</span></p>
<div class="cnblogs_code"><img id="code_img_closed_f1719e4b-2138-4a04-870b-c063cde54914" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_f1719e4b-2138-4a04-870b-c063cde54914" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_f1719e4b-2138-4a04-870b-c063cde54914" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> (循环变量①; 条件表达式②; 循环变量增量③) {
代码块④;
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> for循环执行的顺序:① ②④③ ... ②④③ ②,入口为①,出口为②,②④③就是循环过程</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 案例:</span>
<span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(0, 0, 255, 1)">var</span> i = 0; i < 5; i++<span style="color: rgba(0, 0, 0, 1)">) {
console.log(i);
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 结果:</span>
0
1
2
3
4</pre>
</div>
<span class="cnblogs_code_collapse">for循环</span></div>
<p><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907205502369-1253890608.png" alt=""></p>
<p> </p>
<p><span style="color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; orphans: 4; white-space: pre-wrap">#for…in迭代器</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">var</span> arr =
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (num <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> arr) {
console.log(num);
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 结果:</span>
0
1
2
3
4
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 1. break:结束本层循环</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)"> 2. continue:结束本次循环进入下一次循环</span></pre>
</div>
<p><span class="md-plain md-expand" style="box-sizing: border-box"><span style="color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; orphans: 4; white-space: pre-wrap">#while循环</span></span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">while</span><span style="color: rgba(0, 0, 0, 1)"> (条件表达式) {
代码块;
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 条件满足执行代码块,条件不满足跳出循环</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 案例:</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> i = 0<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">while</span> (i < 5<span style="color: rgba(0, 0, 0, 1)">) {
console.log(i);
i</span>++<span style="color: rgba(0, 0, 0, 1)">;
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 结果:</span>
0
1
2
3
4</pre>
</div>
<h4 class="md-end-block md-heading" style="box-sizing: border-box; break-after: avoid-page; break-inside: avoid; font-size: 1.25em; margin-top: 1rem; margin-bottom: 1rem; position: relative; line-height: 1.4; cursor: text; white-space: pre-wrap; color: rgba(51, 51, 51, 1); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif"><span class="md-plain" style="box-sizing: border-box">⑦ 函数</span></h4>
<div class="cnblogs_code"><img id="code_img_closed_1a8531e9-889e-4a19-8421-99d04e0f8389" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_1a8531e9-889e-4a19-8421-99d04e0f8389" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_1a8531e9-889e-4a19-8421-99d04e0f8389" class="cnblogs_code_hide">
<pre>#1<span style="color: rgba(0, 0, 0, 1)">.有参无参函数定义及调用
</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> 函数名 (参数列表) {
函数体;
}
</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> 函数名 () {
函数体;
}
#调用
函数名(参数列表)
#</span>2<span style="color: rgba(0, 0, 0, 1)">.匿名函数及调用
</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> () {
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 没有名字的函数就是匿名函数</span>
<span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 需求需要一个函数地址,就可以传入一个匿名函数</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> fn100(fn) {
fn()
}
fn100( </span><span style="color: rgba(0, 0, 255, 1)">function</span> () { console.log('传进去的匿名函数'<span style="color: rgba(0, 0, 0, 1)">) } )
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 用变量接收匿名函数:第二种声明函数的方式</span>
let f = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (a, b) {
console.log(</span>'ffffffffff'<span style="color: rgba(0, 0, 0, 1)">)
};
f();
#</span>3<span style="color: rgba(0, 0, 0, 1)">.立即调用函数
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 立即执行函数 书写立即执行的函数,首先先写两个括号()()这样防止书写混乱</span>
(<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(a, b){
</span><span style="color: rgba(0, 0, 255, 1)">return</span> a +<span style="color: rgba(0, 0, 0, 1)"> b;
})(</span>1, 2);</pre>
</div>
<span class="cnblogs_code_collapse">函数</span></div>
<p>#函数参数</p>
<div class="cnblogs_code"><img id="code_img_closed_4b2d6a71-4082-412b-bde8-ea090f27158d" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_4b2d6a71-4082-412b-bde8-ea090f27158d" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_4b2d6a71-4082-412b-bde8-ea090f27158d" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 个数不需要统一</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> fn (a, b, c) {
console.log(a, b, c)</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 结果:100 undefined undefined</span>
<span style="color: rgba(0, 0, 0, 1)">}
fn(</span>100);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 并未给b,c传值</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> fn (a) {
console.log(a)</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 结果:100</span>
<span style="color: rgba(0, 0, 0, 1)">}
fn(</span>100, 200, 300);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 200,300被丢弃</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 可以任意位置具有默认值</span>
<span style="color: rgba(0, 0, 255, 1)">function</span> fn (a, b=20, c, d=40<span style="color: rgba(0, 0, 0, 1)">) {
console.log(a, b, c, d)</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 100 200 300 40</span>
<span style="color: rgba(0, 0, 0, 1)">}
fn(</span>100, 200, 300);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 一定按照先后顺序依次传参</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 通过...语法接收多个值</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> fn (a, ...b) {
console.log(a, b)</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 100 </span>
<span style="color: rgba(0, 0, 0, 1)">}
fn(</span>100, 200, 300<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ...变量必须出现在参数列表最后</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p># 函数返回值(<span style="color: rgba(255, 0, 0, 1); font-family: "Helvetica Neue", Helvetica, Verdana, Arial, sans-serif">函数只能返回一个值,如果要返回多个值,只能将其放在数组或对象中返回。</span>)</p>
<div class="cnblogs_code"><img id="code_img_closed_7fa01a88-4297-4306-8385-c9b225a04e2c" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_7fa01a88-4297-4306-8385-c9b225a04e2c" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_7fa01a88-4297-4306-8385-c9b225a04e2c" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> fn () {
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> 返回值;
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 1.可以空return操作,用来结束函数</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)"> 2.返回值可以为任意js类型数据</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)"> 3.函数最多只能拥有一个返回值</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p>#作用域(<span style="font-family: "Helvetica Neue", Helvetica, Verdana, Arial, sans-serif">首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。</span><span style="margin: 0; padding: 0; font-family: "Helvetica Neue", Helvetica, Verdana, Arial, sans-serif; color: rgba(255, 0, 0, 1)">与python作用域关系查找一模一样!</span>)</p>
<h3 style="margin: 10px 0; padding: 0; font-size: 16px; line-height: 1.5; font-family: "Helvetica Neue", Helvetica, Verdana, Arial, sans-serif">函数中的arguments参数</h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> add(a,b){
console.log(a</span>+<span style="color: rgba(0, 0, 0, 1)">b);
console.log(arguments.length);
console.log(arguments[</span>0]);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">arguments相当于将出传入的参数全部包含,这里取得就是第一个元素1</span>
<span style="color: rgba(0, 0, 0, 1)">}
add(</span>1,2)</pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907212316696-71302940.png" alt=""></p>
<p> </p>
<p> <span style="color: rgba(255, 0, 0, 1); font-family: "Helvetica Neue", Helvetica, Verdana, Arial, sans-serif">ES6中允许使用“箭头”(=>)定义函数。</span></p>
<div class="cnblogs_code"><img id="code_img_closed_3361f107-bcfc-42c1-add9-24b91e5c0e14" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_3361f107-bcfc-42c1-add9-24b91e5c0e14" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_3361f107-bcfc-42c1-add9-24b91e5c0e14" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 0, 255, 1)">var</span> f = v =><span style="color: rgba(0, 0, 0, 1)"> v;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 等同于</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> f = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(v){
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> v;
}
</span><span style="color: rgba(0, 0, 255, 1)">var</span> f = () => 5<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 等同于</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> f = <span style="color: rgba(0, 0, 255, 1)">function</span>(){<span style="color: rgba(0, 0, 255, 1)">return</span> 5<span style="color: rgba(0, 0, 0, 1)">};
</span><span style="color: rgba(0, 0, 255, 1)">var</span> sum = (num1, num2) => num1 +<span style="color: rgba(0, 0, 0, 1)"> num2;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 等同于</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> sum = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(num1, num2){
</span><span style="color: rgba(0, 0, 255, 1)">return</span> num1 + num2;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">这里的return只能返回一个值,如果想返回多个值需要自己手动给他们包一个数组或对象中</span>
}</pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p> </p>
<p> </p>
<h3 style="margin: 10px 0; padding: 0; font-size: 16px; line-height: 1.5; font-family: "Helvetica Neue", Helvetica, Verdana, Arial, sans-serif">JSON对象(序列化和反序列化)</h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">var</span> str1 = '{"name": "Alex", "age": 18}'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">var</span> obj1 = {"name": "Alex", "age": 18<span style="color: rgba(0, 0, 0, 1)">};
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> JSON字符串转换成对象</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> obj =<span style="color: rgba(0, 0, 0, 1)"> JSON.parse(str1);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 对象转换成JSON字符串</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> str = JSON.stringify(obj1);</pre>
</div>
<h3 style="margin: 10px 0; padding: 0; font-size: 16px; line-height: 1.5; font-family: "Helvetica Neue", Helvetica, Verdana, Arial, sans-serif">RegExp对象(正则)</h3>
<div class="cnblogs_code"><img id="code_img_closed_d76fca45-df03-4f70-b71c-e1b4eb5918ac" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_d76fca45-df03-4f70-b71c-e1b4eb5918ac" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_d76fca45-df03-4f70-b71c-e1b4eb5918ac" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 定义正则表达式两种方式</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> reg1 = <span style="color: rgba(0, 0, 255, 1)">new</span> RegExp("^{5,11}"<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">var</span> reg2 = /^{5,9}$/<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 正则校验数据</span>
reg1.test('jason666'<span style="color: rgba(0, 0, 0, 1)">)
reg2.test(</span>'jason666'<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">第一个注意事项,正则表达式中不能有空格</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 全局匹配</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> s1 = 'egondsb dsb dsb'<span style="color: rgba(0, 0, 0, 1)">;
s1.match(</span>/s/<span style="color: rgba(0, 0, 0, 1)">)
s1.match(</span>/s/<span style="color: rgba(0, 0, 0, 1)">g)
</span><span style="color: rgba(0, 0, 255, 1)">var</span> reg2 = /^{5,9}$/<span style="color: rgba(0, 0, 0, 1)">g
reg2.test(</span>'egondsb'<span style="color: rgba(0, 0, 0, 1)">);
reg2.test(</span>'egondsb'<span style="color: rgba(0, 0, 0, 1)">);
reg2.lastIndex;
</span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">第二个注意事项,全局匹配时有一个lastIndex属性</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 校验时不传参数</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> reg2 = /^{5,9}$/<span style="color: rgba(0, 0, 0, 1)">
reg2.test();
reg2.test(undefined);
</span><span style="color: rgba(0, 0, 255, 1)">var</span> reg3 = /undefined/<span style="color: rgba(0, 0, 0, 1)">;
reg3.test();</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p><img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907212018659-1549900436.png" alt=""></p>
<p> </p>
<p> <img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907212031889-1609005480.png" alt=""></p>
<p> </p>
<p> <img src="https://img2018.cnblogs.com/blog/1659201/201909/1659201-20190907212046942-894438162.png" alt=""></p>
<p> </p>
<p> </p>
<p><img id="uploading_image_38798" src="https://common.cnblogs.com/images/loading.gif" alt=""></p>
<p> </p><br><br>
来源:https://www.cnblogs.com/tfzz/p/11482399.html
頁:
[1]