如何在JavaScript中启用严格模式
JavaScript中的严格模式在ECMAScript 5中引入,是一种选择进入JavaScript受限版本的机制。严格模式通过将一些JavaScript静默错误转换为抛出错误来修改常规的JavaScript语义。
如何在JavaScript中启用严格模式:
在需要启用严格模式的代码前面使用”use strict”来启用严格模式。在脚本的开头或所需的函数中简单声明即可启用严格模式。当JavaScript引擎遇到此指令时,它会开始以特定模式解析代码,使得错误捕获变得更容易。
使用严格模式的优点:
- 通过将静默错误转换为抛出错误来消除静默错误,从而使调试更容易。
- 当无效使用删除运算符时,严格模式会抛出错误。
- 当使用未声明的变量或调用它们时,严格模式会抛出错误。
- 不允许重复的属性名或参数值。
- 当我们不使用严格模式并且我们的 “this” 运算符指向 null 或 undefined 值时,不会出错,但启用严格模式会引发错误。
- 使用严格模式编写的代码有时可以比以非严格方式编写的代码执行得更快。
严格模式不允许以下指令:
-
不能直接使用未声明的变量。
- 不允许参数/参数重复。
- 不允许使用删除函数。
- 不允许将 “eval” 和 “arguments” 作为变量使用。
- 不允许使用 “with” 语句。
- 不允许删除一个不可删除的属性。
-
不允许写入只读属性。
示例:
不使用严格模式的演示: 在以下示例中,我们在没有声明变量的情况下给一个变量赋值,然后将其打印出来。
Javascript
a = 1;
console.log(a);
输出:

使用严格模式进行演示: 在下面的例子中,我们在没有声明变量的情况下进行赋值并进行打印。我们在代码顶部启用了严格模式。由于使用了严格模式,会显示错误消息。
Javascript
"use strict";
a = 1;
console.log(a);
输出:

演示 使用严格模式与不使用严格模式的示例: 在下面的示例中,JavaScript代码的一部分在严格模式下运行,而另一部分在非严格模式下运行。
JavaScript
// This will not cause an error
a = 10; .
console.log(a);
withUsingStrict();
function withUsingStrict() {
"use strict";
b = 20; // This will cause an error
console.log(b);
}
输出:

极客教程