语句
JavaScript 程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。
语句(statement)是为了完成某种任务而进行的操作,比如下面就是一行赋值语句。
var a = 1 + 3;
这条语句先用var命令,声明了变量a,然后将1 + 3的运算结果赋值给变量a。1 + 3
叫做表达式(expression),指一个为了得到返回值的计算式。
语句和表达式的区别在于,前者主要为了进行某种操作,一般情况下不需要返回值;后者则是为了得到返回值,一定会返回一个值。
凡是 JavaScript 语言中预期为值的地方,都可以使用表达式。
比如,赋值语句的等号右边,预期是一个值,因此可以放置各种表达式。
语句以分号结尾,一个分号就表示一个语句结束。多个语句可以写在一行内。
分号前面可以没有任何内容,JavaScript 引擎将其视为空语句。
表达式不需要分号结尾。一旦在表达式后面添加分号,则 JavaScript 引擎就将表达式视为语句,这样会产生一些没有任何意义的语句。
注释
单行注释:
// .....单行注释
多行注释:
/* 这里是多行注释 这里是多行注释 */
此外,还兼容 HTML 的注释
区块
大括号,将多个语句组合在一起,叫做区块
对于var命令来说,js区块不构成单独的作用域(scope)
{ var a = 1; } a // 1
上面代码在区块内部,使用var命令声明并赋值了变量a,然后在区块外部,变量a依然有效,区块对于var命令不构成单独的作用域,与不使用区块的情况没有任何区别。在 JavaScript 语言中,单独使用区块并不常见,区块往往用来构成其他更复杂的语法结构,比如for、if、while、function等。
条件
if 结构
if (布尔值) 语句; // 或者 if (布尔值) 语句;
if (布尔值) { // 满足条件时,执行的语句 } else { // 不满足条件时,执行的语句 }
if else
的结构可以接着写多个,进行多个条件的判断
switch 结构
switch (变量) { case 值1: // ... break; case 值2: // ... break; default: // ... }
break用来跳出 switch语句,否则会继续执行下一个case
三元运算符
(条件) ? 表达式1 : 表达式2
循环
while 循环
只要条件为真,就不断循环执行代码块
while (条件) 语句; // 或者 while (条件) 语句;
do...while 循环
与while循环类似,唯一的区别就是先运行一次循环体,然后判断循环条件
do 语句 while (条件); // 或者 do { 语句 } while (条件);
不管条件是否为真,do...while循环至少运行一次,这是这种结构最大的特点。另外,while语句后面的分号注意不要省略。
for 循环
for (初始化表达式; 条件; 递增表达式) 语句 // 或者 for (初始化表达式; 条件; 递增表达式) { 语句 }
- 初始化表达式(initialize):确定循环变量的初始值,只在循环开始时执行一次。
- 条件表达式(test):每轮循环开始时,都要执行这个条件表达式,只有值为真,才继续进行循环。
- 递增表达式(increment):每轮循环的最后一个操作,通常用来递增循环变量。
break 与 continue
break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行。
break语句用于跳出代码块或循环。
continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。
如果存在多重循环,不带参数的break语句和continue语句都只针对最内层循环。
标签 label
语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。
label: 语句
标签可以是任意的标识符,但不能是保留字,语句部分可以是任意语句。
标签通常与break语句和continue语句配合使用,跳出特定的循环。