一、语句和表达式
1.1 语句
JavaScript 程序是一行一行执行的,通常一行就是一个语句。
语句是为完成某种任务而执行的操作,它会改变一些环境,如声明、赋值等等。
var a = 1就是一个声明变量 a 并赋值的语句。
1.2 表达式
表达式是可以得到一个值的计算式,它一定会有一个值,而语句一般是没有值的。
比如:
1 + 2是表达式,其值为3f()是表达式,值为函数的返回值console.log是表达式,值为函数console.log本身console.log(3)是表达式,其值为 undefined(因为函数console.log的返回值就是 undefined)
另外,在 JavaScript 程序中,绝大多数情况下空格和回车是没有意义的,比如以下两句代码没有任何区别:
var a=1
var a = 1
但是,有一个例外需要注意,在 return 后面是不能有回车的,否则函数会返回 undefined。
二、标识符
标识符指的是用来识别各种值的合法名称,比如变量名、函数名,标识符对大小写是敏感的,a 和 A 是不相同的。
JavaScript 标识符的使用是有规则限制的,其规则如下:
- 第一个字符,可以是 Unicode 字母(任何语言的字母)、$ 和 _
- 后面的字符,除了以上三种,还可以用数字
此外,JavaScript 还有一些保留字,是不能用作标识符的,这些保留字有:if、else、while、for、function、var、let、return 等,即凡是 JavaScript 语法中内置的关键字,均不可用作标识符。
三、if...else 结构
if...else 是一种条件语句,其结构如下:
if (条件表达式) {
// 满足条件时,执行的语句
} else {
// 不满足条件时,执行的语句
}
有多种判断情形时,多个if...else语句可以连写在一起:
if (条件1) {
// ...
} else if (条件2) {
// ...
} else if (条件3) {
// ...
} else {
// ...
}
注意点:
- 大括号不是必须的,如果不加大括号,则条件判断成功后仅会执行其后面的一个语句,若要执行多个语句,就必须要加大括号。因此,建议总是加上大括号,这样会使代码的条理更加清晰。
四、循环语句
4.1 while 循环
while 循环的结构:
while (条件) {
语句;
}
每次执行前,都会先判断条件是否成立,只要条件为真,就会不断循环执行后面的语句。
4.2 for 循环
for 循环是 while 循环的简便写法,即语法糖,它的结构为:
for (语句1; 条件; 语句2) {
循环体
}
首先执行语句1,然后判断条件,条件为真时,执行循环体,然后执行语句2,随后再次进行判断,循环往复,直至条件为假,退出循环,执行后面的语句。
例:
for (var i = 0; i < 5; i++) {
console.log(i);
}
// 0
// 1
// 2
// 3
// 4
4.3 break 语句和 continue 语句
break 语句和 continue 语句都具有跳转作用,可以让代码不按既有的顺序执行。
break语句用于跳出代码块或循环。
var i = 0;
while(i < 100) {
console.log('i 当前为:' + i);
i++;
if (i === 10) break;
}
当执行到 i 等于10时,会立刻跳出循环,继续往后执行。
continue 语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环,并不会结束整个循环。
注意点:
- 如果存在多重循环,break 语句和 continue 语句都只针对当前循环层,并不影响其外层循环的正常执行。
四、 标签(label)
JavaScript 语句的前面可以有 label,它相当于定位符,格式如下。
label:
语句
标签可以用于跳出代码块,如:
foo: {
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2);
// 1
// 2
程序执行到break foo,会跳出当前的代码块,往下执行。
注意点:
{
foo: 1
}
以上代码并不是一个对象,它是一个区块,区块中的语句1有一个标签foo。
以下写法才表示一个对象:
var a = {
foo: 1
}