语句
表达式在JavaScript中是短语,那么语句就是JavaScript整句或命令。用句号作结尾来分隔语句。表达式计算出一个值,但语句用来执行以使某件事发生。
5.2复合语句和空语句
复合语句:用花括号把多条语句括起来形成符合语句。
{
x = Math.PI;
cx = Math.cos(x);
...................
}
// 第一,语句块的结尾不需要分号
//第二,语句块中的行都有缩进
空语句:包含0条语句的语句。空语句就一个分号 // ; JavaScript解释器执行空语句时它显然不会执行任动作。
// 空语句造成的bug if((a == 0) || (b == 0)); // 糟糕!这一行代码什么都没做。。。循环不会执行 o = null; // 这行代码总是执行
5.5for/for in
// for 循环语句只枚举对象的自身属性 // for in 循环语句除了枚举自身属性,还要枚举继承来的属性。
5.6.1标签语句
语句是可以添加标签的,标签是由语句前的标识符和冒号组成。
mainloop:while(token !=null) {
// 忽略这里的代码。。。
continue mainloop; // 跳转到下一次循环
// 忽略这里的代码
}
5.6.5 throw语句
JavaScript中,使用throw语句显示抛出一个异常(当程序产生某种异常情况或错误时产生的一个信号)。
var a;
if (a) {
console.log(a);
} else {
throw new Error("a没有初始化");
}
5.6.6try/catch/finally语句
try/catch/finally语句是JavaScript的异常处理机制。
try {
// 通常来讲,这里的代码会从头执行到结尾而不会产生任何问题,
// 但有时会抛出一个异常,要么是由throw语句显示抛出
// 要不是通过调用一个方法间接抛出异常
} catch (e) {
// 当且仅当try语句块抛出了异常,才会执行这里的代码
// 这里可以通过局部变量e来获取对Error对象或者抛出的其他值的引用
// 这里的代码块可以基于某种原因处理这个异常,也可以忽略这个异常
// 还可以通过throw语句重新抛出异常
} finally {
// 不管try语句是否抛出了异常,这里的逻辑总是会执行,终止try语句块的方式有:
// 1)正常终止,执行完语句块的最有一条语句
// 2)通过break ,continue 或者return 语句终止
// 3)抛出一个异常,异常被catch从句捕获
// 4)抛出一个异常,异常未被捕获,继续向上传播
}
5.7.1with语句
with (object) statement
这条语句是把object对象添加到作用域链的头部,然后执行statement,最后把作用域链恢复到原始状态。
注:建议不要使用with语句,不好优化,并且运行得更慢。
5.7.2debugger语句
debugger语句通常是什么都不做,当调试程序可用并运行的时候,JavaScript解释器将会以调试模式运行。
5.7.3“use strict” 是一条指令