Switch先分析跟在switch语句后的表达式,然后解析case后的值,知道找到吻合的配对,匹配的条件用===而不是==。
?
?
for( variable in object)
访问的顺序不确定,根据JS的实现的不同而有不同。
如果在遍历时,删除了一个未遍历的元素,则该元素将不被遍历。
如果在遍历时,增加了一个新元素,该元素是否被遍历取决于JS的实现。
此语句并不保证遍历对象的所有属性,有些属性设置为Non-enumerable,将不会被遍历到。
?
var语句
如果在function中,就在相应的CALL对象中创建一个属性
如果不在function中,就在全局对象中创建一个属性
var语句创建的属性不能用delete语句删除
?
return语句
如果return语句后不跟任何参数,则返回undefined.
?
throw语句
throw后可跟一个值或者一个类型,但一般都是用Error对象。
如果throw语句执行,JS解析器将停止执行 后面的语句而跳到最近的异常处理语句中。
如果一直都没有找到对应的处理语句,错误将被返回给用户
Error对象是ECMAScriptv3的设计,但是直到V5才被实现
throw也是V3的设计,在JAVASCRIPT 1.4中实现
?
try/catch/finally
如果try后不跟catch,且finally中有return语句,异常扩散将停止,并且将返回finally中的返回值
?
with语句
用于暂时修改scope chain,将某个对象提前到scope chain的前面,然后在WITH的语句块执行完毕后,让scope chain重新回到原状态。
?
with(frames[1].document.forms[0]) { // Access form elements directly here. For example: name.value = ""; address.value = ""; email.value = ""; }?
但使用with语句后,执行效率会下降。而且在with语句中声明变量,定义函数可能会出现意想不到的结果,因此不推荐使用with。
?
?
?
?
?