1. 表达式和语句
1.1 概念和举例
- 语句(statement)是为了完成某种任务而进行的操作,一般会改变环境(声明、赋值),可能有值也可能没有
var a=1 是一个语句
- 表达式(expression),指一个为了得到返回值的计算式,一般都有值
1+2表达式的值为3
add(1+2)表达式的值为函数的返回值
console.log的值为函数本身
console.log(3)表达式的值为3
- 区别
语句和表达式的区别在于,前者主要为了进行某种操作,一般情况下不需要返回值;后者则是为了得到返回值,一定会返回一个值。
1.2 注意点
- 大小写敏感
- 大部分空格和回车都没有意义
特例:return后不能加回车,如下面例子会输出undefined
function fn() {
return
3
}
2. 标识符的规则
标识符(identifier)指的是用来识别各种值的合法名称。最常见的标识符就是变量名、函数名。JavaScript 语言的标识符对大小写敏感,所以a和A是两个不同的标识符。
标识符有一套命名规则,不符合规则的就是非法标识符。JavaScript 引擎遇到非法标识符,就会报错。标识符命名规则如下。
-
第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)、下划线(_)和中文。
-
第二个字符及后面的字符,除了 Unicode 字母、美元符号、下划线和中文,还可以用数字0-9。
JavaScript 有一些保留字,不能用作标识符:
arguments、break、case、catch、class、const、continue、debugger、default、delete、do、
else、enum、eval、export、extends、false、finally、for、function、if、implements、import、
in、instanceof、interface、let、new、null、package、private、protected、public、return、
static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。
3. if else 语句
- if (表达式) {语句1} else {语句2}
- { }在语句只有一句的时候可以省略,但不建议这样做
- 推荐写法:
if (表达式) {
语句1
} else if (表达式) {
语句2
} else (表达式) {
语句3
}
function fn() {
if (表达式) {
return (表达式)
}
if (表达式) {
return (表达式)
}
return (表达式)
}
- 陷阱:下面例子会输出
a等于2,因为省略花括号,if只会管到第一句
a=1
if (a===2)
console.log("a")
console.log("a等于2")
4. while 循环, for 循环
while (表达式) {语句}
- 判断表达式真假
- 当表达式为真,执行语句,执行完再判断表达式真假
- 当表达式为假,执行后面的语句
for(语句1;表达式2;语句3){
循环体
}
- 先执行语句1
- 然后判断表达式2
- 如果为真,执行循环体,然后再执行语句3
- 如果为假,直接退出循环,执行后面的语句
5. break和continue
break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行。
- break语句用于跳出代码块或循环。
var i = 0;
while(i < 100) {
console.log('i 当前为:' + i);
i++;
if (i === 10) break;
}
上面代码只会执行10次循环,一旦i等于10,就会跳出循环。
- continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。
var i = 0;
while (i < 100){
i++;
if (i % 2 === 0) continue;
console.log('i 当前为:' + i);
}
上面代码只有在i为奇数时,才会输出i的值。如果i为偶数,则直接进入下一轮循环。
如果存在多重循环,不带参数的break语句和continue语句都只针对最内层循环。
6. label
JavaScript 语言允许语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下:
label:
语句
- 举例
foo: {
console.log(1);
break foo;
console.log("本行不会输出");
}
console.log(2);
上面代码执行到break foo,就会跳出区块。
{
foo: 1
}
问:上面的东西是什么
答:这是一个lable,语句是1