您的位置:首页 > Web前端 > JavaScript

【JavaScript学习笔记】4:查漏补缺1

2018-02-07 14:57 375 查看
基础语法上有一些和之前学习的编程语言不一样的地方或者自己不熟悉的地方,特别学习一下。

===和!==运算符

===运算符前面学了,就是要求数据类型和值都相等:

3=='3'
true
3==='3'
false


!== 运算符就是对其取反,只要数据类型不相等,或者值不相等都可以:

3!='3'
false
3!=='3'
true


所以还是不要去用==和!=而是用===和!==吧。

switch语句

只是为了试一下switch底层属于哪种判断,测试出来用的是===来做的判断:

<!DOCTYPE HTML>
<HTML>
<BODY>
</BODY>
<HEAD>
<meta charset="utf-8">
<script>
var x=10;
switch(x){
case "10":
console.log("匹配No.1");
break;
case 10:
console.log("匹配No.2");
break;
default:
console.log("都不行");
}
</script>
</HEAD>
</HTML>


输出

匹配No.2


增强for

看起来像python的增强for,带了Java的花括号:

<!DOCTYPE HTML>
<HTML>
<BODY>
</BODY>
<HEAD>
<
4000
meta charset="utf-8">
<script>
var x={name:"LZH",年龄:20,挂科数:100};
for(y in x){
console.log("y="+y);
console.log(x[y]);
}
console.log(window.y); //这样不声明就使用的y变量是一个全局变量,现在仍可用
</script>
</HEAD>
</HTML>


输出

y=name
LZH
y=年龄
20
y=挂科数
100
挂科数


这样y一直存在很多余,在这里(不是函数内)如果用var声明还是全局变量:

for(var y in x){...}


所以还是要用let声明块级变量,才能用完即销毁:

即在文件头
"use strict";
并且
for(let y in x){...}
才比较舒服。

带标签的break

break本来只能用在循环和switch里面,带了标签之后就可以用在标签注明的代码块里了:

<!DOCTYPE HTML>
<HTML>
<BODY>
</BODY>
<HEAD>
<meta charset="utf-8">
<script>
ok=["abc","d","ef","gh"];
//标签注明的代码块
mylabel:{
console.log(ok[0]);
console.log(ok[1]);
break mylabel; //跳出这个代码块
console.log(ok[2]);
console.log(ok[3]);
}
console.log("出来了");
</script>
</HEAD>
</HTML>


输出

abc
d
出来了


带标签的continue

continue只能用于循环,不过带了标签能让它选择跳过的是哪一层的循环,而不是默认的最内层的循环:

<!DOCTYPE HTML>
<HTML>
<BODY>
</BODY>
<HEAD>
<meta charset="utf-8">
<script>
"use strict";
mylab1: //外循环给个标签
for(let i=0;i<5;i++)
{
mylab2: //内循环给个标签
for(let j=0;j<3;j++)
{

if(i+j==5)
continue mylab2; //continue内循环
else if(i+j==6)
continue mylab1; //continue外循环
else if(i>=4)
break mylab1; //break外循环
console.log("j="+j);
}
console.log("****i="+i+"****");
}
console.log("全结束了");
</script>
</HEAD>
</HTML>


输出

j=0
j=1
j=2
****i=0****
j=0
j=1
j=2
****i=1****
j=0
j=1
j=2
****i=2****
j=0
j=1
****i=3****
全结束了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: