【发布时间】:2011-07-24 18:38:10
【问题描述】:
在for/in 循环中声明循环特定变量的正确语法是什么?
前两个似乎都可以工作(并且不会在 Google Closure Compiler 中引发任何标志),但只有第三个通过了 Crockford 的 JS Lint。我不太愿意用它,主要是因为它不够紧凑。
JSLint 抱怨 val 是一个错误的变量(当我不添加 var 时),或者声明应该被移动。
第一个或第二个选项有什么缺点吗?我应该使用什么? (示例假设str 是声明的字符串,vals 是声明的对象)
1。没有声明:
for(val in vals)
{
if(vals.hasOwnProperty(val))
{
str += val;
}
}
2。在'for' var 声明中:
for(var val in vals)
{
if(vals.hasOwnProperty(val))
{
str += val;
}
}
3。在循环变量声明之外:
var val;
for(val in vals)
{
if(vals.hasOwnProperty(val))
{
str += val;
}
}
【问题讨论】:
标签: javascript syntax for-in-loop