17370845950

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

严格模式(Strict Mode)是 JavaScript 中的一种运行模式,它让代码在更严格的条件下执行,禁用一些不安全、易出错或已被废弃的语法和行为。

严格模式能帮你避免哪些常见错误

它会主动报错,而不是静默失败。比如:

  • 给未声明的变量赋值,普通模式下会自动创建全局变量,严格模式直接抛 ReferenceError
  • 删除不可删除的属性(如 delete Object.prototype),会立即报错
  • 函数参数名重复(function fn(a, a) {})会被拒绝
  • 使用八进制字面量(010)或 with 语句,直接语法错误

它让代码更可靠、更易维护

严格模式禁用了部分模糊、歧义的特性,例如:

  • this 在非对象上下文中不再指向全局对象(如顶层函数中为 undefined),避免意外修改全局状态
  • 禁止对只读属性赋值、对不可扩展对象添加新属性,提前暴露问题
  • 函数内部的 arguments 不再与形参自动绑定,避免隐式耦合

如何启用严格模式

在脚本或函数顶部加上字符串 "use strict"(注意:必须是字面量字符串,不能带变量或表达式):

  • 整个脚本启用:"use strict"; 放在第一行
  • 单个函数启用:function myFn() { "use strict"; ... }
  • 模块(ES6+)默认就是严格模式,无需手动声明

它不是“新语法”,而是更干净的执行环境

严格模式不引入新功能,也不改变语言核心逻辑,只是收紧规则。老代码加了它可能报错,但这些错误本来就是隐患。现代开发工具、框架和打包器(如 Webpack、Babel)通常默认兼容或自动启用,实际项目中建议全量开启。