{
out = rogueArray[13];
for (var arrayItem in vanWilder)
{
这就是我在JSLint上所说的:
Error:
Problem at line 52 character 18: Move 'var' declarations to the top of the function.
for (var arrayItem in vanWilder)
Problem at line 52 character 18: Stopping. (30% scanned).
Implied global: requestOne 19,22,25,27, XMLHttpRequest 19, document 29, out 51
Unused variable: evilVariable 25 "onreadystatechange", redBull 25 "onreadystatechange", wildGoose 25 "onreadystatechange", monkeyWrench 25 "onreadystatechange"
我该如何解决这个问题? 如果不是第二个错误,至少第一个错误!
答案 0 :(得分:2)
第52行的问题18:将'var'声明移到函数的顶部。
由于JavaScript没有块范围,并且提升了变量定义,因此Crockford建议您将所有变量定义放在范围的顶部。
隐含的全球:requestOne 19,22,25,27,XMLHttpRequest 19,document 29,out 51
由于out
左侧没有var
关键字,因此它会附加到window
,从而使其成为全局。
未使用的变量:evilVariable 25“onreadystatechange”,redBull 25“onreadystatechange”,wildGoose 25“onreadystatechange”,monkeyWrench 25“onreadystatechange”
您必须在某处定义变量evilVariable
而不使用它。
请记住,道格拉斯·克罗克福德是个聪明人,他的JavaScript书非常出色,但是把他的话和JSLint作为一个人的建议,而不是福音。 :)