📜  什么是严格模式以及如何在 JavaScript 中启用它?(1)

📅  最后修改于: 2023-12-03 15:06:25.780000             🧑  作者: Mango

严格模式与启用方式

JavaScript 严格模式是 ECMAScript 5(ES5)的一部分,使用它可以使代码更安全、更易于调试和优化。严格模式被设计为用于解决 ECMAScript 3(ES3)的一些不足,从而使得某些不标准的行为变得非法,同时为未来的语法变化做好准备。启用严格模式可以提供更佳的代码质量,并在一些特殊情况下提高性能。

如何启用严格模式

启用严格模式有两种方式:

  1. 在全局作用域中使用 "use strict";
  2. 在函数内部使用 "use strict";
在全局作用域中使用

在全局作用域中添加 "use strict"; 可以启用整个 JavaScript 文件的严格模式:

"use strict";
// your code here

在使用 "use strict" 的情况下会与全局变量声明的方式有所不同,当在全局作用域使用 "use strict"; 命令时,在任何全局作用域中声明的变量都将自动变为全局作用域的显式变量。这意味着,当在严格模式下编写代码时,不能隐式地创建全局变量。

在函数内部使用

在函数内部添加 "use strict"; 可以启用该函数的严格模式。

function foo() {
  "use strict";
  // your code here
}

在函数作用域中使用 "use strict" 命令的效果与在全局作用域中使用的效果相同。但与全局变量不同,在函数作用域中使用的变量不能隐式地创建为全局变量。

严格模式的影响

启用严格模式的影响有以下几个方面:

  • 在一些情况下禁止使用未声明的变量;
  • 禁止删除变量、函数和函数的参数;
  • 禁止修改只读属性;
  • 禁止使用八进制字面值;
  • 禁止使用 eval 和 arguments 关键字;
  • 通过消除 this 的隐式绑定,强制使用 call() 和 apply()。

从严格模式中去除了某些未来版本可能支持的实验性语言特性,使得未来扩展 ECMAScript 的可能性更大。

结论

通过启用严格模式,可以避免很多常见的 JavaScript 报错,以及使得未来的代码升级更加容易。因此,尽管它涉及到一些限制和编码标准,但它是推荐的编程实践之一,程序员应该在编码时考虑使用。