作者:帅的人都关注了
Github:Github
爱好:Americano More Ice !
项目源码: 项目Github源码!Star完再走
目录
定义
- 声明格式
"use strict";(官网)
<!-- 或者 -->
'use strict'
- 定义
"use strict"特性是在ES5(ECMAScript 5)中被新增的,目的是为了表明代码执行严格模式。
- 声明作用域
一般在脚本的开头声明,具有全局作用域(脚本中的所有代码都会在严格模式下执行)
PS:特殊场景,若在函数内部声明,它只具有局部作用域(仅函数内部的代码处于严格模式)
x = 3.14; // This will not cause an error.
myFunction();
function myFunction() {
"use strict";
y = 3.14; // This will cause an error
}
为什么用use strict模式
- 该模式下更容易编写
安全的JavaScript - 该模式下不可接受->以前可接收的
错误语法
举个例子,在普通
JavaScript中,错误输入变量名会创建一个新的全局变量。在严格模式下,这将引发错误,从而不可能意外创建全局变量。
再举个例子,在严格模式下,任何对不可写属性、getter-only 属性、不存在的属性、不存在的变量或不存在的对象的赋值都会引发错误。
use strict模式作用范围
- 变量:var、delete、let变量关键字
- 对象:只读属性、 对象属性重复申明
- 函数:参数重名、arguments对象申明
- 其他:this、eval、关键字...