标签
note
字数
370 字
阅读时间
2 分钟
背景
"use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增,它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略,"use strict" 的目的是指定代码在严格条件下执行,严格模式下你不能使用未声明的变量。
使用
在 js 脚本或者函数头部添加 "use strict"; 表达式来声明
限制
- 不允许使用未声明的变量
- 不允许删除对象或者变量
- 不允许删除函数
- 不允许变量重名
- 不允许使用转义字符
- 不允许对只读属性赋值 禁止 this 关键字指向全局对象(在函数内部或者 Es6 的类中(默认开启了严格模式) ,this 指向 'undefined')
示例代码如下:
js
function f() {
"use strict" this. a = 1 //报错,this未定义
}作用
- 严格模式通过抛出错误来消除了一些原有静默错误。
- 严格模式修复了一些导致 JavaScript 引擎难以执行优化的缺陷:有时候,相同的代码,严格模式可以比非严格模式下运行得更快。
- 严格模式禁用了在 ECMAScript 的未来版本中可能会定义的一些语法
参考
js中的严格模式 - 掘金
严格模式 - JavaScript | MDN