“use strict”作用范围
// file.js
"use strict"
function doStuff(){
// use strict is enabled here!
}
这样file.js都会应用上”use strict”模式。
如果你仅想在一个函数中使用:
// file.js
function a(){
"use strict";
// use strict is enabled in this context
function nestedFunction(){
// and here too
}
}
“use strict”的特性
检查对象中的重复键
var zombie = {
eyeLeft : 0,
eyeRight: 1,
// ... a lot of keys ...
eyeLeft : 1
}
这段代码会抛出一个错误因为 eyeLeft 出现了两次。这比你用眼睛去找错误要快多了。
未声明变量
在”use strict”模式下,给未声明的变量赋值会抛出ReferenceError
的警告。而在正常模式
下,给未声明变量赋值会直接创建同名全局变量。
重复的参数
function run(fromWhom, fromWhom){}
注意fromWho出现了两次,因此会抛出一个错误。
限制函数中的arguments
var run = function(fromWhom){
arguments[0] = 'alien';
alert(fromWhom);
}
run('zombie');
// alert: 'alien';
var run = function(fromWhom){
"use strict";
arguments[0] = 'alien';
alert(fromWhom);
}
run('zombie');
// alert: 'zombie';
看懂了么,就是这么简单