JavaScript严格模式
JavaScript严格模式教程
ECMAScript 5 的严格模式是采用具有限制性 JavaScript 变体的一种方式,从而使代码显示地脱离 “马虎模式/稀松模式/懒散模式“(sloppy)模式。
在 JavaScript 中,我们要开启严格模式,只需要使用 use strict
指令即可。
JavaScript严格模式详解
语法
use strict;
说明
它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略。
为什么使用严格模式
- 消除 JavaScript 语法的一些不合理、不严谨之处,减少一些怪异行为。
- 消除代码运行的一些不安全之处,保证代码运行的安全。
- 提高编译器效率,增加运行速度。
- 为未来新版本的 JavaScript 做好铺垫。
- “严格模式” 体现了 JavaScript 更合理、更安全、更严谨的发展方向,包括 IE 10 在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。
- 另一方面,同样的代码,在 “严格模式” 中,可能会有不一样的运行结果;一些在 “正常模式” 下可以运行的语句,在 “严格模式” 下将不能运行。掌握这些内容,有助于更细致深入地理解 JavaScript,让你变成一个更好的程序员。
- 严格模式通过抛出错误来消除了一些原有静默错误。
- 严格模式修复了一些导致 JavaScript 引擎难以执行优化的缺陷:有时候,相同的代码,严格模式可以比非严格模式下运行得更快。
- 严格模式禁用了在 ECMAScript 的未来版本中可能会定义的一些语法。
严格模式的限制
- 不允许使用未声明的 变量。
- 不允许删除变量或 对象。
- 不允许删除 函数。
- 不允许变量重名。
- 不允许使用八进制。
- 不允许使用 转义字符。
- 不允许对只读属性赋值。
- 不允许对一个使用 getter 方法读取的属性进行赋值。
- 不允许删除一个不允许删除的属性。
- 变量名不能使用 “eval” 字符串。
- 变量名不能使用 “arguments” 字符串。
- 由于一些安全原因,在作用域 eval() 创建的变量不能被调用。
- 禁止 this 关键字指向全局对象。
JavaScript严格模式总结
ECMAScript 5 的严格模式是采用具有限制性 JavaScript 变体的一种方式,从而使代码显示地脱离 “马虎模式/稀松模式/懒散模式“(sloppy)模式。