当前位置: 代码迷 >> Web前端 >> 犀牛书札记:(8)Statements
  详细解决方案

犀牛书札记:(8)Statements

热度:215   发布时间:2012-09-18 16:21:42.0
犀牛书笔记:(8)Statements

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

?

?

?

?

?

  相关解决方案