流程控制语句

表达式语句、块语句、空语句和声明语句?↓ ] 如果表达式在 JS 中是短语,那么,语句就是 JS 的整句或命令。

  • 一个表达式可以产生一个值,可能是运算、函数调用,也可能是字面量。表达式可以放在任何需要值的地方。
  • 语句可以理解为一个行为或指令,循环语句和判断语句就是典型的语句。一个程序由很多个语句组成,一般情况下使用 ; (英文状态下的分号) 分割为一个个的语句。

JS 程序无非就是一系列可执行语句的集合,JS 解释器依照语句的编写顺序依次执行

默认情况下,JS 解释器依照语句的编写顺序依次执行;而,JS中的很多语句,可以改变语句的默认执行顺序


条件语句

脚本的威力体现在,它们可以根据人们给出的各种条件做出决策,JS 使用条件语句来做判断。

条件语句通过判断表达式的值来决定执行还是跳过某些语句,包括 if 语句和 switch 语句。


[1] if 语句:根据表达式的值改变程序流程。

[ if-else 语句 ] 当 expression 的值,为 true 时,执行跟在其后的代码块;为 false 时,执行 else 的逻辑。

[ if-else if-else 语句 ] 当代码有多条分支时,需要使用else if语句。

else if语句并不是真正的JavaScript语句,它是多条if/else语句 连在一起时的一种惯用写法。


[2] switch 语句

当所有的分支都依赖于同一个表达式的值时,else if并不是最佳解决方案。在这种情况下,重复计算多条if语句中的条件表达式是非常浪费的做法,而switch语句正适合处理这种情况。


[ break ]每一个case语句块的结尾处都使用了关键字break,break语句可以使解释器跳出switch语句或循环语句。

switch语句中,case只是指明了要执行的代码起点,但并没有指明终点。

如果没有break语句,那么switch语句就会从与expression的值相匹配的case标签处的代码块开始执行, 依次执行后续的语句,直到整个switch代码块的结尾 — “ 穿透效果 ” 。


[ 数据类型 ]虽然ECMAScript中的switch语句借鉴自其他语言,但这个语句也有自己的特色。

switch语句中可使用任何数据类型( 很多语言类型受限 ),且每个case值不一定是常量,可以是变量或表达式。


循环语句(looping statement)

条件语句把JS中的代码变成一条条的分支路径,而循环语句就是程序路径的一个回路,可以让一部分代码重复执行。

在 JS 中,有 4 种循环语句:while、do/while、for、for/in,它们的工作原理几乎一样:只要给定条件仍能得到满足,包含在循环语句里的代码就将重复地执行下去。一旦给定条件的求值结果不再是true,循环也就到此为止。

其中,最常用的循环就是对数组元素的遍历。


[1] while语句:它是前测试循环语句。即,在循环体内的代码被执行之前,就会对出口条件求值。


[2] do while语句:它是后测试循环,即退出条件在执行循环内部的代码之后计算。

这意味着:在计算表达式之前,至少会执行循环主体一次。


[3] for语句:它提供了一种比while更方便的循环控制结构,用for循环来重复执行一些代码的好处是循环结构更加清晰。

大部分的循环都具有特定的计数器变量,计数器的三个关键操作是:初始化、检测和更新。

for语句将这三步明确声明为循环语法的一部分,各自使用一个表达式来表示。


[4] for in语句                                                       // 它和常规的for循环是完全不同的一类循环



跳转语句

跳转语句可以让解释器跳转到程序的其他部分继续执行,包括 break、continue 和 return 语句。


[1] label语句


[2] break语句


[3] continue语句


[4] return语句