javascript – 适用于/在变量声明中
作者:互联网
在for / in循环中声明循环特定变量的正确语法是什么?
前两个似乎都工作(并且不会在Google Closure Compiler中引发任何标志),但只有第三个通过了Crockford的JS Lint.我不愿意使用它,主要是因为它不紧凑.
JSLint抱怨val是一个坏变量(当我不添加var时),或者应该移动声明.
第一个或第二个选项有任何缺点吗?我该怎么用? (示例假设str是声明的字符串,val是声明的对象)
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;
}
}
解决方法:
随意忽略JSLint.这比任何事情都更准确.第二和第三功能相同,随意使用(我使用第二个).第一个暴露了一个全局’val’变量,所以不要这样做:)
仅供参考,第三个原因是内联变量声明比发现/查找要困难得多:
var a, b, c, d, e;
在函数的顶部.
标签:javascript,syntax,for-in-loop 来源: https://codeday.me/bug/20190621/1255416.html