可能重复:
JavaScript 变量在循环外部或内部声明?
所以..我看过很多文章说我们应该使用以下样式。
var i;
for(i=0;i <= 10; i++) {
// do something here
}
我一直在使用上述风格,但我只是想知道除了可读性之外它是否真的有帮助。
是不是和下面的一样?
for(var i=0; i<=10; i++) {
}
可能重复:
JavaScript 变量在循环外部或内部声明?
所以..我看过很多文章说我们应该使用以下样式。
var i;
for(i=0;i <= 10; i++) {
// do something here
}
我一直在使用上述风格,但我只是想知道除了可读性之外它是否真的有帮助。
是不是和下面的一样?
for(var i=0; i<=10; i++) {
}
如果出于某种原因(绝不应该如此)您在函数的上下文之外用相同的名称声明了一个全局变量,则会有所不同。
var i = 'global';
function test(){
alert(i);
for(var i = 0; i < 10; i++){
//do something
}
}
test();
在上面的示例中,您会注意到警报返回“未定义”。这是因为变量定义被提升到函数的顶部(无论它们在函数中的何处声明)。所以实际上,上面的解释为:
var i = 'global';
function test(){
var i;
alert(i);
for(i = 0; i < 10; i++){
//do something
}
}
test();
因此警报“未定义”。最终,将变量声明放在函数顶部的唯一原因是为了减少这种潜在的混乱。
两者之间没有显着差异——纯粹是见仁见智。
var
,而是来自忘记并依赖块范围来支持您(它没有,因为它不存在)。