"use strict"
是 JavaScript 的严格模式声明,用于启用 ECMAScript 5 中引入的严格模式。严格模式提供了一种更严格的解析和执行 JavaScript 代码的方式,有助于提高代码的安全性和一致性。
主要功能和用途
消除 JavaScript 中的一些不安全行为:
- 在严格模式下,某些不安全的行为被禁止。例如,不能使用未声明的变量,防止全局变量的无意创建。
修复 JavaScript 的一些错误:
- 严格模式修复了语言中的一些设计缺陷,使得错误更容易被发现和调试。例如,
delete
不能删除不可删除的属性。
提高性能:
- 在某些 JavaScript 引擎中,启用严格模式可以提高代码执行的性能,因为引擎可以对代码进行更多优化。
避免意外创建全局变量:
- 严格模式下,所有变量必须先声明才可以使用。如果未声明变量就使用,会导致错误,而不是隐式创建全局变量。
禁止重复参数和对象属性:
- 在严格模式下,函数的参数不能有重复的名称,对象的属性名也不能重复,这有助于避免潜在的错误。
启用方式
全局启用:
在整个 JavaScript 文件的开头添加 "use strict";
:
"use strict";
// 全局范围内的代码
函数级别启用:
在函数内部添加 "use strict";
,只对该函数内的代码有效:
function myFunction() {
"use strict";
// 函数范围内的代码
}
示例
"use strict";
// 错误:未声明的变量
x = 10; // ReferenceError: x is not defined
// 正确:必须先声明变量
let y = 20;
// 错误:不能删除不可删除的属性
delete Object.prototype; // TypeError: Cannot delete property 'prototype' of function Object() { [native code] }