严格模式是JavaScript的增强约束机制,通过"use strict"启用,使未声明变量赋值等错误显式报错,提升代码质量与可维护性。

JavaScript 严格模式是一种让代码在更规范、更安全环境下执行的机制,它不是新语法,而是对 JavaScript 行为的一套“增强约束”。启用后,原本可能静默失败或产生意外行为的写法会直接报错,帮你提前发现隐患。
严格模式怎么启用
必须用字符串字面量 "use strict"(单引号或双引号均可),且只能出现在作用域的最开头位置:
- 全局启用:放在整个脚本文件的第一行,整份 JS 都生效
- 函数级启用:放在某个函数体内的第一行,只对该函数及其内部嵌套函数起作用
- 模块(
import/export)脚本默认就是严格模式,不用手动加 - 不能写在条件语句里、不能在注释或代码之后出现,否则会被忽略
严格模式带来的关键变化
它不是“加功能”,而是“收紧规则”,让错误暴露得更早、更明确:
- 给未声明变量赋值会报
ReferenceError,不再偷偷创建全局变量 - 函数参数名重复(如
function(a, a) {})直接报语法错误 - 禁止使用
delete删除变量、函数或参数名 - 普通函数中
this不再默认指向全局对象,而是undefined -
eval无法向外部作用域注入变量,作用域更干净 - 禁用八进制字面量(如
010)、保留字(如class、super)不能当变量名
为什么建议启用严格模式
它不改变语言核心能力,但显著提升代码质量与可维护性:
立即学习“Java免费学习笔记(深入)”;
- 减少低级错误,比如拼错变量名、漏写
var/let/const - 避免隐式全局污染,降低模块间意外干扰风险
- 帮助引擎更好优化,某些场景下运行更快
- 与现代语法(如模块、类、箭头函数)行为更一致,降低学习和迁移成本
- 所有主流浏览器(IE10+)都支持,兼容性无压力
新项目从第一行就加上 "use strict",老项目也可以逐步在函数内启用,成本低、收益高。











