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()内的代码是严格代码。
相关文章推荐
- JavaScript基础(语法类型转换、运算符、语句)
- 学习笔记(二)JavaScript基本概念(语法,数据类型,控制语句,函数)
- Javascript学习指南(第2版)笔记(一) Script、数据类型和变量、操作符和语句
- 使用javascript:将其它类型值转换成布尔类型值的解决方法详解
- javascript获取表单中checkbox类型的值,并传递到其它页面
- JavaScript之变量、基本类型、数组、运算符、流程控制语句、函数
- [知了堂学习笔记] javascript数据类型、运算符、控制语句
- javascript 基础篇2 数据类型,语句,函数
- javascript 变量、数据类型、语句、函数小总结 01
- javascript高级程序设计学习笔记【数据类型、循环控制语句】
- JavaScript基础之一——语句与数据类型
- javascript 判断是否为数组或对象或各种其它数据类型
- 跟我学JavaScript--插入,注释,变量,字面量,语句,数据类型
- 我的JavaScript回顾之路_01—0206—++在前在后区别/&&和||/条件判断语句/循环语句的区别/字符串类型数字和数字类型之间的转换
- javascript类型转换、运算符、语句
- 使用javascript:将其它类型值转换成布尔类型值的解决方法详解
- javascript 基础篇2 数据类型,语句,函数
- 【JavaScript】(2)标识符与关键字\基本|引用数据类型 \变量 \运算符与表达式\流程控制语句
- javascript中if()语句条件类型为boolean
- 跟我学JavaScript--2.数据类型以及常用语句