JavaScript严格模式

JavaScript严格模式教程

ECMAScript 5 的严格模式是采用具有限制性 JavaScript 变体的一种方式,从而使代码显示地脱离 “马虎模式/稀松模式/懒散模式“(sloppy)模式。

在 JavaScript 中,我们要开启严格模式,只需要使用 use strict 指令即可。

JavaScript严格模式详解

语法

use strict;

说明

它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略。

为什么使用严格模式

  • 消除 JavaScript 语法的一些不合理、不严谨之处,减少一些怪异行为。
  • 消除代码运行的一些不安全之处,保证代码运行的安全。
  • 提高编译器效率,增加运行速度。
  • 为未来新版本的 JavaScript 做好铺垫。
  • “严格模式” 体现了 JavaScript 更合理、更安全、更严谨的发展方向,包括 IE 10 在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。
  • 另一方面,同样的代码,在 “严格模式” 中,可能会有不一样的运行结果;一些在 “正常模式” 下可以运行的语句,在 “严格模式” 下将不能运行。掌握这些内容,有助于更细致深入地理解 JavaScript,让你变成一个更好的程序员。
  • 严格模式通过抛出错误来消除了一些原有静默错误。
  • 严格模式修复了一些导致 JavaScript 引擎难以执行优化的缺陷:有时候,相同的代码,严格模式可以比非严格模式下运行得更快。
  • 严格模式禁用了在 ECMAScript 的未来版本中可能会定义的一些语法。

严格模式的限制

  1. 不允许使用未声明的 变量
  2. 不允许删除变量或 对象
  3. 不允许删除 函数
  4. 不允许变量重名。
  5. 不允许使用八进制。
  6. 不允许使用 转义字符
  7. 不允许对只读属性赋值。
  8. 不允许对一个使用 getter 方法读取的属性进行赋值。
  9. 不允许删除一个不允许删除的属性。
  10. 变量名不能使用 “eval” 字符串
  11. 变量名不能使用 “arguments” 字符串。
  12. 由于一些安全原因,在作用域 eval() 创建的变量不能被调用。
  13. 禁止 this 关键字指向全局对象。

JavaScript严格模式总结

ECMAScript 5 的严格模式是采用具有限制性 JavaScript 变体的一种方式,从而使代码显示地脱离 “马虎模式/稀松模式/懒散模式“(sloppy)模式。