2026-04-08 07:37:26
JavaScript严格模式是一种更严格的代码执行环境,通过特定语法激活,旨在提升代码安全性和可维护性。
一、核心特性
错误检测强化
禁止未声明变量直接赋值(如v=1会报错,必须用var/let/const声明)。
禁止重复的对象属性名或函数参数名(如{p:1, p:2}报错)。
禁止八进制数字表示法(如0100报错)。
安全限制
this在函数内默认指向undefined(非全局对象),防止意外污染全局作用域。
禁止删除不可配置的属性(如delete Object.prototype报错)。
禁用with语句和arguments.callee,避免动态作用域带来的不确定性。
作用域与执行优化
eval创建独立作用域,不再能定义全局变量。
arguments对象不再追踪参森漏数变化(如函数内修改参数不影响arguments[0])。
未来兼容性
强制函数声明在顶层作用域,为块级作用域(如let/const)做准备。
新增保留字(如let、yield),禁止作为变量名使用。
二、启用方式
三、典型行为差异
四、设计目的
注意:严格模式在主流浏览器(含IE10+)中均支持,但旧版浏览器可能忽略"use strict"指令。