JavaScript中开启严格模式需在脚本或函数顶部添加"use strict";,全局启用作用于整个文件,函数级启用仅限该函数;严格模式禁止隐式创建全局变量、重复参数名、删除不可配置属性等,提升代码安全性与可维护性。

在 JavaScript 中开启严格模式,只需在脚本或函数顶部添加 "use strict"; 这条指令。它会启用更严格的语法和错误检查机制,帮助你写出更安全、更可维护的代码。
如何正确开启严格模式
严格模式可以作用于整个脚本,也可以只作用于单个函数:
- 全局开启:把
"use strict";放在 JS 文件最顶部(或 <script> 标签内的第一行),之后所有代码都受约束 - 函数级开启:在函数体第一行写
"use strict";,仅该函数内部启用严格模式 - 注意:不能放在条件语句、循环或任何执行逻辑之后,否则会被忽略或报错
严格模式下变量声明的规范要求
严格模式禁止隐式创建全局变量,强制显式声明,避免意外污染作用域:
- 未声明就赋值会直接报错,比如
name = "Alice";会触发ReferenceError - 必须用
var、let或const明确声明变量 -
let和const不允许重复声明同一标识符,var在同一作用域重复声明也不会报错,但不推荐
其他关键变量相关限制
严格模式还强化了变量使用的安全性:
立即学习“Java免费学习笔记(深入)”;
- 禁止删除不可配置的属性,如
delete Object.prototype;会报错 - 禁止给只读属性赋值,比如对
NaN、undefined赋值会报TypeError - 函数参数名不能重复,
function foo(a, a) { }在严格模式下是语法错误 -
arguments对象不再与形参自动同步,修改arguments[0]不会影响对应参数值
实际使用建议
现代项目中,推荐默认启用严格模式:
- ES6 模块(
import/export)默认就是严格模式,无需手动添加 - 在非模块脚本中,建议统一在文件顶部加
"use strict"; - 避免混用严格与非严格代码,尤其在多个文件拼接时需注意作用域边界
- 配合 ESLint 等工具,能提前捕获未声明变量等常见问题


















