在/循环中声明循环特定变量的正确语法是什么?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声明之外:
var val;
for(val in vals)
{
if(vals.hasOwnProperty(val))
{
str += val;
}
}