关于Javascript中的"use strict"的那些事

“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';

看懂了么,就是这么简单

    原文作者:小杺
    原文地址: https://segmentfault.com/a/1190000014675685
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞