让声明申请后果

时间:2015-07-15 09:24:32

标签: javascript node.js performance ecmascript-6

I found这样的解释为什么在节点中使用var声明的变量的循环比在chrome中更快:

  

在Chrome等网络浏览器中,将变量i声明为外部   任何函数的范围都使它成为全局的,因此将其绑定为   窗口对象的属性。因此,在Web中运行此代码   浏览器需要反复解析i中的属性   在for循环的每次迭代中,人口密集的窗口命名空间。

     

然而,在Node.js中,声明任何函数之外的任何变量   scope将其仅绑定到模块自己的范围(不是window对象)   因此,它可以更容易,更快地解决。

对Ecmascript6中的let语句感到好奇:它是否在循环中使用更多块作用域声明的变量来更快地进行计算,或者它只是针对名称冲突的安全措施?

1 个答案:

答案 0 :(得分:1)

let的目标是在JavaScript中有更好的范围界定机制(不再为了确定范围而在匿名函数中包装内容)。任何性能提升都只是最重要的。