I found这样的解释为什么在节点中使用var声明的变量的循环比在chrome中更快:
在Chrome等网络浏览器中,将变量i声明为外部 任何函数的范围都使它成为全局的,因此将其绑定为 窗口对象的属性。因此,在Web中运行此代码 浏览器需要反复解析i中的属性 在for循环的每次迭代中,人口密集的窗口命名空间。
然而,在Node.js中,声明任何函数之外的任何变量 scope将其仅绑定到模块自己的范围(不是window对象) 因此,它可以更容易,更快地解决。
对Ecmascript6中的let
语句感到好奇:它是否在循环中使用更多块作用域声明的变量来更快地进行计算,或者它只是针对名称冲突的安全措施?
答案 0 :(得分:1)
let
的目标是在JavaScript中有更好的范围界定机制(不再为了确定范围而在匿名函数中包装内容)。任何性能提升都只是最重要的。