1. 语句和表达式
JavaScript 程序的执行单位为行,也就是一行一行的执行。一般情况下,一行就是一个语句。
语句是为了完成某种任务而进行的操作。表达式是一个为了得到返回值的计算式。
语句以分号结尾,多个语句可以写在一行内。
语句和表达式的区别是,语句主要为了进行某种操作(一般会改变环境),一般不需要返回值;表达式是为了得到返回值。
需要注意的是
- 分号前面可以没有任何内容
;;;
上面代码就是三个语句
- 在 JavaScript 程序中,绝大多数情况下空格和回车是没有意义的,比如以下三句代码没有任何区别
var a = 1;
var a=1;
var a = 1;
有个例外是,return 后面是不能有回车的,否则函数会返回 undefined。
2. 标识符
标识符是用来识别各种值的合法名称。常见的标识符是变量名和函数名。标识符对大小写敏感,a 和 A 是两个不同的标识符。
标识符的规则如下
- 第一个字符可以是任意 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...else 结构基本形式如下
if(判断语句){
表达式1 //判断语句 true 时,执行该部分内容
}else{
表达式2 //判断语句为 false 时,执行该部分内容
}
可以使用三元运算符简写为
(判断语句)?表达式1:表达式2;
对同一变量进行多次判断时,可以写成
if(条件1){
//...
}else if(条件2){
//...
}else if(条件3){
//...
}else{
//...
}
注意
- 大括号不是必须的,但是建议总是加上大括号。。
如果不加大括号,只会执行后面的第一个语句;若要执行多个语句,必须加大括号。
建议总是加上大括号。 - 判断语句优先采用“严格相等运算符”(
===).
4. 循环语句
4.1 while 循环
基本结构如下
while(条件){
语句;
}
每次执行前,进行条件判断,只要为真,就一直执行。
4.2 for 循环
for 循环可以指定循环的起点、终点和终止条件。格式如下
for(初始化表达式; 条件; 递增表达式){
语句
}
- 初始化表达式确定循环变量的初始值,只在循环开始时执行一次。
- 每次循环开始时执行条件表达式,只有值为真,才继续进行循环。
- 递增表达式是每轮循环的最后一个操作,用来递增循环变量。
例如
for(let i = 0; i < 4; i++){
console.log(i)
}
//0
//1
//2
//3
4.3 break 语句和 continue 语句
break 语句和 continue 语句都有跳转的作用,可以让代码不按既有的顺序执行。
break 语句用于跳出代码块或者循环
let i = 0;
while(i < 10){
console.log(i);
i++;
if(i === 5) break;
}
当执行到 i 等于 5,就会跳出循环。
continue 语句用于终止本轮循环,返回循环结构头部,开始执行下一轮循环。
注意,如果存在多重循环,break 语句和 continue 语句都只针对当前循环层,不会影响到外层循环。
5. 标签(label)
JavaScript 语句前面有标签,相当于定位符,用于跳转到程序的任意位置。格式如下
label:
语句
标签常与 break 语句和 continue 语句配合使用,用于跳出特定循环。
标签也可用于跳出代码块
foo: {
console.log(1);
break foo;
console.log('本行不会执行');
}
console.log(2);
//1
//2
注意
{
foo: 1
}
上面代码并不是一个对象,表示一个区块,这个区块中有一个标签 foo。
下面才是一个对象
let a ={
foo: 1
}