一、表达式和语句
表达式(Expression)一般有值,而语句(Statement)不总有。
表达式是可以被求值的代码,而语句是一段可执行代码,一般会改变环境(声明,赋值)。
因为表达式可被求值,所以它可写在赋值语句等号的右侧。
而语句不一定有值,所以像import、for和break等语句就不能被用于赋值。
例如:
- 1+2表达式的值为3;
- 表达式如果是一个函数,则表达式的值为函数的返回值;
- console.log表达式的值为函数本身;
- console.log(3)表达式的值为undefined。
- var a = 1 则是一个语句。
二、空格与回车的含义
大部分空格没有实际意义
- var a=1和var a= 1没有区别;
- 加回车大部分时候也不影响
- return后面不能加回车
三、标识符
标识符的第一个字符可以是Unicode字母或$或_或中文(下划线最多两个),后面的字符可以是之前提到的以及数字。
四、if else语句
if else 语句的语法为 if(表达式){语句1} else {语句2}。
{ }在语句只有一句的时候可以省略,但最好写全,不然可能会引起歧义。
最推荐使用的写法
if (表达式) {
语句
} else if (表达式) {
语句
} else {
语句
}
次推荐使用的写法
function fn(){
if (表达式) {
return 表达式
}
if (表达式) {
return 表达式
}
return 表达式
}
五、switch语句(if...else的升级版,但一般不用)
switch (fruit) {
case "banana":
// ...
break;
case "apple":
// ...
break;
default:
// ... }
break不能漏写
六、while for 语句
- while语句的语法为 while(表达式){语句} 。执行时会先判断表达式的真假,当表达式为真,执行语句,执行完再判断表达式的真假;当表达式为假,则执行后面的语句。
注意:可能会受浮点数的影响!
- for则是whil循环的简便写法,语法为for(语句1;表达式2;语句3){循环体}。
-
执行时会先执行语句1,然后判断表达式2。
-
如果为真,则执行循环体,然后执行语句3;
-
如果为假,则直接退出循环,然后执行后面的语句。
注意:for 循环在 let 时会有单独的逻辑,有别于var!
七、break和continue
break意思是退出所有循环;continue意思是退出当前一次循环。(continue只会退出当前所在的循环,并不影响其他循环)
八、label 语句(用的很少)
label是任何不属于保留关键字的 JavaScript 标识符。要注意的是以下代码:
foo:{
console.log(1);
break foo;
console.log("本行不会输出");
}
console.log(2);
输出1和2