您的位置:首页 > Web前端 > JavaScript

JavaScript 其它类型语句

2014-05-06 11:07 141 查看

with语句

    with语句用于历史扩展作用域链,它具有如下的语法:

      with(object)

      statement

    这条语句将object添加到作用域链的头部,然后执行statement,最后把作用域链恢复到原始状态。

    在严格模式中是禁止使用with语句的,并且在非严格模式里也是不推荐使用with语句的,尽可能避免使用with语句。难于优化,并且运行慢。

    在对象嵌套层次很深的时候通常会使用with语句赖建华代码编写。例如,在客服端javascript中,可能会使用类似下面这种表达式来访问一个HTML表单中的元素:

          document.forms[0].address.value

    如果这种表达式在代码中多次出现,则可以使用with语句将form对象添加至作用域链的顶层:

         with(document.form[0]){

             name.value="";

             address.value="";

             email.value="";

          }

    这种方法减少大量的输入,不用再为每个属性名添加document.forms[0]前缀。这个对象临时挂载在作用域链上,当Javascript需要解析诸如address的标识符时,就会自动在这个对象中查找。当然,不使用with语句的等价代码可以写成这样:

var f = document.forms[0];

f.name.value ="";

f.address.value="";

f.email.value="";

    不要忘记,只有在查找标识符的时候才会用到作用域链,创建新的变量的时候不使用它,看一下下面这行代码:

with(o) x=1;

    如果对象o有一个属性x,那么这行代码给这个属性赋值为1。但如果o中没有定义属性x,这段代码和不使用with语句的代码x=1是一模一样的。它给一个局部变量或者全局变量x赋值,或者创建全局对象的一个新属性。with语句提供了一中读取o的属性的快捷方式,但它并不能创建o的属性。

debugger语句

    debugger语句用来产生一个断电(breakpoint),javascript代码的执行会停止在断点的位置,这时而已使用调试器输出变量的值、检查调用栈等。

“use strict”

    “use strict”是ECMAScript 5 引入的一条指令。指令不是语句(但非常接近于语句)。
    使用“use strict”指令的目的是说明(脚本或函数中)后续的代码将会解析为严格代码(strict code)。如果顶层(不在任何函数内的)代码使用了“use strict”指令,那么它们就是严格代码。如果函数体定义所处的代码是严格代码或者函数体使用了“use strict”指令,那么函数体的代码也是严格代码。如果eval()调用时所处的代码是严格代码或者eval()要执行的字符串中使用了“use strict”指令,则eval()内的代码是严格代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐