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