严格模式能防止未声明变量赋值、重复参数名、重复对象属性名、非对象调用时this指向全局、with语句及不安全eval等行为,通过报错替代静默失败。
严格模式(Strict Mode)是 JavaScript 中的一种运行模式,它让代码在更严格的条件下执行,能帮助开发者及早发现潜在错误、避免不安全操作,并禁用一些容
易出错或已被淘汰的语法。
它会主动报错而不是静默失败,比如:
function foo(a, a) {})会报 SyntaxError
{a: 1, a: 2})在严格模式下也报错(ES5+)this 在非对象调用时为 undefined(普通模式下指向全局对象)with 语句和部分 eval 行为,提升安全性和可预测性有两种启用方式,作用范围不同:
标签最顶部写 "use strict";(必须是第一行有效语句,前面只能有注释)"use strict";,只对该函数及其内部嵌套函数生效注意:"use strict" 必须是字符串字面量,不能加变量、表达式,也不能用单引号以外的引号(虽然部分环境支持单引号,但规范要求双引号)。
它不会帮你发现逻辑错误,也不会自动修复代码。它只是收紧了语言规则,让“可疑行为”显性化。现代开发中,推荐在新项目中默认启用;老项目可逐步在函数级添加,降低迁移风险。模块(import/export)脚本默认就是严格模式,无需手动声明。
基本上就这些。