严格模式是JavaScript中强制代码规范执行的机制,通过报错拦截隐式全局变量、with语句、重复参数、非法delete及模糊this绑定等问题,提升安全性、可读性、性能与调试效率。
JavaScript 严格模式(Strict Mode)是一种让代码在更严格、更规范的环境中执行的机制,它不是新语法,而是一套执行约束规则。启用后,原本可能“悄悄通过”的错误会直接报错,迫使开发者写出更清晰、更安全、更可维护的代码。
它主动
拦截一些容易出错却不易察觉的行为:
a = 10,非严格模式下会挂到 window 上,严格模式直接抛 ReferenceError)with 语句(易引发作用域混乱,且影响性能)function fn(a, a) { } 在严格模式下报错)delete Object.prototype 会报错)this 在非对象调用时不再指向全局对象,而是 undefined(避免意外污染全局)只需在脚本顶部或函数体开头写一行字符串字面量:
标签内的首行"use strict";
function foo() { "use strict"; /* 这里受严格约束 */ }
注意:它不是语句,是字面量表达式;浏览器不支持时会直接忽略,无副作用。
虽然现代开发多用 TypeScript 或构建工具(如 Babel),但严格模式仍有现实价值:
"use strict",理解它有助于读懂原始逻辑delete、含糊的 this 绑定,比等到线上报错再排查成本低得多class、enum、import),避免升级时冲突不只是“更严”,更是更可靠: