for(myvar in obj){
if(obj.hasOwnProperty(myvar)){
…
}
}
do语句就像while语句,唯一的区别是它在代码块执行之后而不是之前检测表达式的值。这就意味着代码块将总是要执行至少一次。
try语句执行一个代码块,并捕获该代码块抛出的任何异常。catch从句定义了一个新的变量,它将接收该异常对象。
throw语句抛出一个异常。如果throw语句在一个try代码块中,那么控制权会跳到catch从句中。如果throw语句在函数中,则该函数调用被放弃,且控制权会跳到调用该函数的try语句的catch从句中。
throw语句中的表达式通常是一个对象字面量,它包含一个name属性和一个message属性。异常捕获器可以使用这些信息去决定该做什么。
return语句会使一人函数提前返回。它也可以指定要被返回的值。如果没有指定返回表达式,那么其返回值是undefined。
JavaScript不允许在return关键字和表达式之间换行。
break语句会使程序退出一个循环语句或switch语句。它可以指定一个可选的标签,那将会使程序退出带该标签的语句。
JavaScript不允许在break关键字和标签之间换行。
一个expression语句可以给一个或多个变量或成员赋值,或者调用一个方法,或者从对象中删除一个属性。运算符=被用于赋值。不要把它和恒等运算符===混淆。运算符+=可以用于加法运算或连接字符串。
2.6 表达式
三元运算符?有三个运算数。如果第一个运算数值为真,它产生第二个运算数的值。但是,如果第一个运算数为假,它会产生第三个运算数的值。
表2-1:运算符优先级
.[]()
属性存取及函数调用
delete new typeof +-!
一元运算符
*/%
乘法、除法、取模
+-
加法/连接、减法
>= <= > <
不等式运算符
=== !==
等式运算符
&&
逻辑与
||
逻辑或
?: