Please enable JavaScript.
Coggle requires JavaScript to display documents.
严格模式 (变化 (使静默失败的赋值操作抛出异常 (不可写的全局变量, 不可写的自定义对象属性), 将过失错误转为异常 (意外创建的全局变量),…
严格模式
变化
使静默失败的赋值操作抛出异常
不可写的全局变量
不可写的自定义对象属性
将过失错误转为异常
意外创建的全局变量
试图删除不可删除的属性时会抛出异常
不允许定义重名属性
严格模式要求函数参数名唯一
严格模式禁止八进制数字语法,但是支持一个数字加‘0o’的前缀来表示八进制数。
禁止设置primitive值的属性
与非严格模式异同
具有限制性JavaScript变体的一种方式
语义更改
严格模式通过抛出错误来消除一些原有静默错误
修复了JavaScript引擎难以执行优化的缺陷
禁用了ECMAScript的未来版本中可能会出现的一些语义
简化变量的使用
禁用with语法
eval不再为上层范围引入新变量
开启方式:所有语句前放一个特定语句“use strict”
禁止删除声明变量
arguments只保存调用时的原始值,args变化不能引起arguments的变化
arguments.callee不再支持