严格模式是JavaScript中禁用不安全语法、主动报错的执行模式,可避免隐式全局变量、删除不可删属性等错误,启用方式为顶部添加"use strict"字符串。

严格模式(Strict Mode)是 JavaScript 中的一种运行模式,它让代码在更严格的条件下执行,禁用一些不安全、易出错或已被废弃的语法和行为。
严格模式能帮你避免哪些常见错误
它会主动报错,而不是静默失败。比如:
- 给未声明的变量赋值,普通模式下会自动创建全局变量,严格模式直接抛 ReferenceError
- 删除不可删除的属性(如 delete Object.prototype),会立即报错
- 函数参数名重复(function fn(a, a) {})会被拒绝
- 使用八进制字面量(010)或 with 语句,直接语法错误
它让代码更可靠、更易维护
严格模式禁用了部分模糊、歧义的特性,例如:
- this 在非对象上下文中不再指向全局对象(如顶层函数中为 undefined),避免意外修改全局状态
- 禁止对只读属性赋值、对不可扩展对象添加新属性,提前暴露问题
- 函数内部的 arguments 不再与形参自动绑定,避免隐式耦合
如何启用严格模式
在脚本或函数顶部加上字符串 "use strict"(注意:必须是字面量字符串,不能带变量或表达式):
立即学习“Java免费学习笔记(深入)”;
- 整个脚本启用:"use strict"; 放在第一行
- 单个函数启用:function myFn() { "use strict"; ... }
- 模块(ES6+)默认就是严格模式,无需手动声明
它不是“新语法”,而是更干净的执行环境
严格模式不引入新功能,也不改变语言核心逻辑,只是收紧规则。老代码加了它可能报错,但这些错误本来就是隐患。现代开发工具、框架和打包器(如 Webpack、Babel)通常默认兼容或自动启用,实际项目中建议全量开启。










