Javascript 在for循环之外声明一个变量(var i=0)有帮助吗?
可能重复:Javascript 在for循环之外声明一个变量(var i=0)有帮助吗?,javascript,for-loop,Javascript,For Loop,可能重复: 所以..我看到很多文章说我们应该使用下面的风格 var i; for(i=0;i <= 10; i++) { // do something here } vari; 对于(i=0;i两者之间没有显著差异——纯粹是意见问题。两者之间没有显著差异——纯粹是意见问题 都一样 之所以这样做,是因为在JS中,实践是确保在函数顶部的一个位置声明变量。明确地说,这是因为没有块作用域以及潜在的范围链解析错误。 错误不会来自于声明var,而是因为忘记了,并且依赖于block scope
所以..我看到很多文章说我们应该使用下面的风格
var i;
for(i=0;i <= 10; i++) {
// do something here
}
vari;
对于(i=0;i两者之间没有显著差异——纯粹是意见问题。两者之间没有显著差异——纯粹是意见问题
都一样
之所以这样做,是因为在JS中,实践是确保在函数顶部的一个位置声明变量。明确地说,这是因为没有块作用域以及潜在的范围链解析错误。
错误不会来自于声明var
,而是因为忘记了,并且依赖于block scope来支持您(它不支持,因为它不存在)
都一样
之所以这样做,是因为在JS中,实践是确保在函数顶部的一个位置声明变量。明确地说,这是因为没有块作用域以及潜在的范围链解析错误。
错误不会来自于声明var
,而是因为忘记了,并且依赖于block scope来支持您(它不支持,因为它不存在)
如果出于某种原因(不应该是这种情况),您在函数上下文之外以相同的名称声明了一个全局变量,则会产生不同
var i='global';
功能测试(){
警报(一);
对于(变量i=0;i<10;i++){
//做点什么
}
}
test();
在上面的示例中,您会注意到警报返回“undefined”。这是因为变量定义被提升到函数的顶部(无论它们在函数中声明在何处)。因此,实际上,上面的解释是:
var i='global';
功能测试(){
var i;
警报(一);
对于(i=0;i<10;i++){
//做点什么
}
}
test();
因此,警报“未定义”。最终,将变量声明放在函数顶部的唯一原因是减少这种潜在的混淆。
如果出于某种原因(不应该是这种情况),您在函数上下文之外以相同的名称声明了一个全局变量,则会产生不同
var i='global';
功能测试(){
警报(一);
对于(变量i=0;i<10;i++){
//做点什么
}
}
test();
在上面的示例中,您会注意到警报返回“undefined”。这是因为变量定义被提升到函数的顶部(无论它们在函数中声明在何处)。因此,实际上,上面的解释是:
var i='global';
功能测试(){
var i;
警报(一);
对于(i=0;i<10;i++){
//做点什么
}
}
test();
因此,警报“未定义”。最终,将变量声明放在函数顶部的唯一原因是减少这种潜在的混淆。
类似于:Na,这只是个人风格。一些人喜欢通过在代码开头声明所有内容来明确变量提升。类似于:Na,这只是个人风格。一些人喜欢通过在代码开头声明所有内容来明确变量提升。
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();