考虑一下:
var i = 0;
var isEight = false;
while(true){
if( i === 8) {
isEight = true;
break;
}
i++;
}
与此相对:
var i = 0;
while(true){
var isEight = false; // moved declaration inside
if( i === 8) {
isEight = true;
break;
}
i++;
}
这个例子是人为的,但你明白了。当isEight
的声明进入循环时,Javascript如何响应?
每次该行运行时是否会分配新的内存空间?如果循环运行很多次,这会是一个严重的问题吗?
更新:自亚历克斯指出,在这种情况下使用let
代替var
怎么样?