"use strict"是JavaScript中一个非常好的特性,而且非常容易使用。
作用
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的Javascript做好铺垫。
使用方法
// file.js
"use strict"
function test(){}
这样的file.js都会应用上"use strict"模式。
如果你仅想在一个函数中使用,如下代码仅仅在test中起作用
// file.js
function test(){
"use strict";
function temp(){}
}
严格模式的作用
1、检查对象中的重复键
es6支持重复键
let value = {
a : 0,
b: 1,
a : 1
}
这段代码会抛出一个错误因为 a 出现了两次。这比你用眼睛去找错误要快多了。
2、未声明变量
plane = 5;
3、重复的参数
function test(data, data){
}
注意data出现了两次,因此会抛出一个错误。
4、限制函数中的arguments
function test(data){
arguments[0] = 'aaa';
console.log(data);
}
run('bbb'); //'aaa';
现在你可以使用"use strict"
function test(data){
"use strict";
arguments[0] = 'aaa';
console.log(data, arguments);
}
run('bbb'); //bbb { '0': 'aaa' }
arguments[0] = 'aaa' 改变了参数data,在严格模式下,这种操作无效,只对arguments起作用
5、不能用前导0声明8进制直接量
例如: let a = 012;