资讯专栏INFORMATION COLUMN

为什么使用"use strict"可以节约你的时间

hizengzeng / 3444人阅读

摘要:未声明变量你现在已经知道忘记在这个变量前面加了。想象一下,如果你声明了一个全局的,在嵌套循环中可能会引起混乱。重复的参数注意出现了两次,因此会抛出一个错误。限制函数中的现在你可以使用改变了参数,又节约了你的时间。

// 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
    }
}
好处

检查对象中的重复键

var zombie = {
    eyeLeft : 0,
    eyeRight: 1,
    // ... a lot of keys ...
    eyeLeft : 1
}

这段代码会抛出一个错误因为 eyeLeft 出现了两次。这比你用眼睛去找错误要快多了。

未声明变量

plane = 5;

你现在已经知道忘记在这个变量前面加var了。不过如果你不知道,调试起来是非常痛苦的,因为这个变量是声明在全局上下文(global context)中的,而且可能被其他地方改掉。想象一下,如果你声明了一个全局的 i, 在嵌套循环中可能会引起混乱。

重复的参数

function run(fromWhom, fromWhom){}

注意fromWho出现了两次,因此会抛出一个错误。

限制函数中的arguments

var run = function(fromWhom){
    arguments[0] = "alien";
    alert(fromWhom);
}
run("zombie");
// alert: "alien";

现在你可以使用"use strict"

var run = function(fromWhom){
    "use strict";
    arguments[0] = "alien";
    alert(fromWhom);
}
run("zombie");
// alert: "zombie";

arguments[0] = "alien" 改变了参数fromWhom,use strict 又节约了你的时间。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/82241.html

相关文章

  • "use strict"

    摘要:增强的安全措施禁止关键字指向全局对象使用构造函数时,如果忘了加,不再指向全局对象,而是报错。禁止八进制表示法整数第一位为,将报错。也就是说,不允许在非函数的代码块内声明函数。 use strict 全局变量显示声明 静态绑定:属性和方法到底归属哪个对象,在编译阶段就确定。 禁止使用with语句:因为with语句无法在编译时就确定属性到底归属哪个对象 创设eval作用域:正常模式下...

    FleyX 评论0 收藏0
  • 关于Javascript中的"use strict"的那些事

    摘要:作用范围这样都会应用上模式。如果你仅想在一个函数中使用的特性检查对象中的重复键这段代码会抛出一个错误因为出现了两次。未声明变量在模式下,给未声明的变量赋值会抛出的警告。重复的参数注意出现了两次,因此会抛出一个错误。 use strict作用范围 // file.js use strict function doStuff(){ // use strict is enabled ...

    icyfire 评论0 收藏0
  • 你不曾察觉的隐患:危险的 target="_blank" 与 “opener”

    摘要:恶意网站根据来伪造一个足以欺骗用户的页面,并展示出来期间还可以做一次跳转,使得浏览器的地址栏更具有迷惑性。而如果在链接中加入了,则此时两个标签页将会互不干扰,使得原页面的性能不会受到新页面的影响。 在网页中使用链接时,如果想要让浏览器自动在新的标签页打开指定的地址,通常的做法就是在 a 标签上添加 target等于_blank 属性。然而,就是这个属性,为钓鱼攻击者带来了可乘之机。 s...

    venmos 评论0 收藏0
  • 你不曾察觉的隐患:危险的 target="_blank" 与 “opener”

    摘要:恶意网站根据来伪造一个足以欺骗用户的页面,并展示出来期间还可以做一次跳转,使得浏览器的地址栏更具有迷惑性。而如果在链接中加入了,则此时两个标签页将会互不干扰,使得原页面的性能不会受到新页面的影响。 在网页中使用链接时,如果想要让浏览器自动在新的标签页打开指定的地址,通常的做法就是在 a 标签上添加 target等于_blank 属性。然而,就是这个属性,为钓鱼攻击者带来了可乘之机。 s...

    EsgynChina 评论0 收藏0
  • 你不曾察觉的隐患:危险的 target="_blank" 与 “opener”

    摘要:恶意网站根据来伪造一个足以欺骗用户的页面,并展示出来期间还可以做一次跳转,使得浏览器的地址栏更具有迷惑性。而如果在链接中加入了,则此时两个标签页将会互不干扰,使得原页面的性能不会受到新页面的影响。 在网页中使用链接时,如果想要让浏览器自动在新的标签页打开指定的地址,通常的做法就是在 a 标签上添加 target等于_blank 属性。然而,就是这个属性,为钓鱼攻击者带来了可乘之机。 s...

    jackwang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<