重新分配变量和重新定义之间的性能差异

Jac*_*ney -1 javascript variables

在Javascript中哪种风格更适合性能?

STYLE1

var x = ''
for(var i = 0 ; i < arr.length ; i ++){
    x = ....
    //do something with x
 }
Run Code Online (Sandbox Code Playgroud)

蓝紫魅力

for(var i = 0 ; i < arr.length ; i ++){
    var x = ....
    //do something with x
 }
Run Code Online (Sandbox Code Playgroud)

nnn*_*nnn 5

JavaScript没有像其他语言一样的块范围,只有函数范围.这意味着在实践中,JS引擎会将代码的第一个版本解释为:

var i, x = '';    
for(i = 0 ; i < arr.length ; i ++){
    x = ....
    //do something with x
}
Run Code Online (Sandbox Code Playgroud)

第二个版本完全相同,只是没有指定默认''x:

var i, x;    
for(i = 0 ; i < arr.length ; i ++){
    x = ....
    //do something with x
}
Run Code Online (Sandbox Code Playgroud)

因此,在我看来,"样式1"是不好的做法,因为您指定了一个从未使用过的值.但我认为"风格2"更糟糕,因为它暗示了不存在的块范围.

至于哪个表现更好,没有测试它我希望两者与任何现代JS引擎几乎相同.