ES5 引入了严格模式:"use strict"
作用
- 消除了一些不合理的地方
- 提高了代码的运行效率
- 保证代码运行安全
分类
-
全局严格:函数外的,全局
-
局部严格:函数内的,局部
使用
-
"use strict" -
全局严格:
"use strict"必须放在js代码的第一 行
// 全局严格:use stirct放第一行
"use strict"
function fn1() {
console.log(this)
}
//加了严格模式输出为:undefined
// 不加为:window
fn1()
-
局部严格:
"use strict"放在函数内部的第一行
// 局部严格:在函数内部添加,只对函数内部有用
function fn2() {
console.log(this)
}
fn2() //window
function fn3() {
"use strict"
console.log(this)
}
fn3() //undefined
注意事项
- 不可以省略var声明变量
- 禁止函数使用this关键字指向全局变量
- 禁止使用八进制方法
- 不允许在非函数的代码块内声明函数
- 严格模式下,arguments变量不变(不同步)
- 作用域:全局、局部、块级作用域、在严格模式下,eval函数作用域