所以..我看过很多文章说我们应该使用以下风格。
var i;
for(i=0;i <= 10; i++) {
// do something here
}
我一直在使用上述风格,但我只是想知道除了可读性之外它是否真的有用。
是否与以下内容相同?
for(var i=0; i<=10; i++) {
}
答案 0 :(得分:2)
如果由于某种原因(绝不应该是这种情况),您在函数的上下文之外使用相同的名称声明了一个全局变量,这会产生影响。
var i = 'global';
function test(){
alert(i);
for(var i = 0; i < 10; i++){
//do something
}
}
test();
在上面的示例中,您会注意到警报返回&#34; undefined。&#34;这是因为变量定义被提升到函数的顶部(无论它们在函数中声明的位置)。所以实际上,上述内容被解释为:
var i = 'global';
function test(){
var i;
alert(i);
for(i = 0; i < 10; i++){
//do something
}
}
test();
因此警报&#34;未定义。&#34;最终,将变量声明置于函数顶部的唯一原因是减少这种潜在的混淆。
答案 1 :(得分:1)
两者之间没有显着差异 - 纯粹是一种意见问题。
答案 2 :(得分:1)
var
,而是忘记了,并依赖于块范围来获得你的支持(它没有,因为它不存在)。