表达式和语句
- 表达式一般有值,语句不一定有值
- 语句一般会改变环境,例如声明,赋值
- 以上两点不是绝对的
标识符的规则
- 标识符的第一个字符可以是Unicode字符,中文,美元符号$,下划线_
- 标识符的其他字符可以是Unicode字符,中文,美元符号$,下划线,数字
- 避免连续使用多个下划线作为标识符
if else 语句
-
if(条件表达式){代码} 条件为ture时执行代码
-
if(条件表达式){代码1}else{代码2} 条件表达式为true执行代码1,条件值为false执行代码2
-
if(条件表达式1){代码1}else if(条件表达式2){代码2}else if(条件表达式3){代码3}....else{} 哪个条件表达式成立,就执行对应代码,构成选择代码。
-
switch语句可用于条件判断与选择
switch(表达式){
case '表达式1' : 语句1;
break;
case '表达式2' : 语句2;
break;
......
case '表达式n' : 语句n;
break;
default;
}
- switch语句可用于多条件判断,例如:
var a=2;
switch(a){
case 1 :
case 3 : cosole.log('奇数');
break;
case 2 :
case 4 : console.log('偶数');
break;
}
-
switch语句不可省略break,否则进行条件判断并执行语句后会继续执行下面的条件,不会停止
-
问号冒号表达式
表达式1?表达式2:表达式3判断表达式1,为true执行2,为false执行3。 -
A && B && C && D && E取值为第一个假值或E,并不取值true/false。应用案例:IE没有console,可以用console && console.log && cosole.log('hello');避免错误 -
A || B || C || D || E取值为第一个真值或E,并不取值true/false。
while/for 语句
-
while(条件表达式){循环执行的语句}判断条件->执行循环体->判断条件;while(true){语句}会导致死循环。 -
for(语句1;表达式2;语句3){循环体语句}先执行语句1,然后判断表达式2,如果为true,执行循环体,再执行语句3;如果为false,退出循环。表达式2不能省略,会导致死循环。 -
在循环语句中,设置语句延迟执行,会有一些有趣的结果,例如
for(var i=0;i<5;i++){
setTimeout(()=>{console.log(i)},0);
}
这段代码输出结果为5,5,5,5,5,因为语句延迟执行,执行语句时i的值已经变为5。
break/continue
在循环体中使用break,会跳出本层循环。在循环体中使用continue,会跳出本次循环。存在多层循环时,均不会影响外层循环。
label
label的语法为foo:{代码},用foo表示后面的{代码},和对象略有差异。例如 foo:1 ,foo表示1。