"use strict"
是 JavaScript 中的一个指令,用于启用严格模式。严格模式可以帮助开发者发现一些常见的编码错误,并且使 JavaScript 引擎以更严格的规则来执行代码,从而提高代码的安全性和性能。
在 JavaScript 文件或函数的开头添加 "use strict"
可以使该文件或函数进入严格模式。严格模式下,JavaScript 引擎会对一些容易引发错误的语法和行为抛出异常。
this
的值为 undefined
,在全局作用域下和函数内部不使用 new
调用时。eval()
函数的行为更接近于其他语言的 eval()
。严格模式可以应用在全局作用域或函数作用域。
"use strict";
// 变量必须声明后再使用
var x = 10;
// y = 20; // 报错:ReferenceError: y is not defined
// 禁止删除变量、函数和函数参数
var a = 1;
delete a; // 报错:SyntaxError: Delete of an unqualified identifier in strict mode.
function foo(arg) {
delete arg; // 报错:SyntaxError: Delete of an unqualified identifier in strict mode.
}
// 禁止使用八进制数字
var b = 0123; // 报错:SyntaxError: Octal literals are not allowed in strict mode.
// this 在全局作用域下和普通函数中为 undefined
function test() {
console.log(this); // undefined
}
test();
// 禁止使用保留字作为变量名
var let = 10; // 报错:SyntaxError: Unexpected strict mode reserved word
如果在启用严格模式后遇到错误,通常是因为代码中存在不符合严格模式规则的部分。解决方法是根据错误提示进行修改。
例如,如果出现 ReferenceError: y is not defined
错误,说明在使用变量 y
之前没有声明它。需要在前面加上 var y
进行声明。
如果出现 SyntaxError: Delete of an unqualified identifier in strict mode.
错误,说明尝试删除不允许删除的标识符。需要检查代码中是否有这样的删除操作,并进行修改或删除。
总之,严格模式是一种有助于提高代码质量和可维护性的工具,但也需要开发者熟悉其规则并进行相应的调整。
领取专属 10元无门槛券
手把手带您无忧上云