问题描述
|
{
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\"
我该如何解决?
如果不是第二个错误,至少第一个错误!
解决方法
第52行的字符18处的问题:将\'var \'声明移至函数顶部。
由于JavaScript没有块作用域,并且悬挂了变量定义,因此Crockford建议您将所有变量定义放在作用域的顶部。
隐含全局:requestOne 19、22、25、27,XMLHttpRequest 19,文档29,输出51
由于
out
的左边没有var
关键字,因此它将附加到window
,本质上使其成为全局关键字。
未使用的变量:evilVariable 25 \“ onreadystatechange \”,redBull 25 \“ onreadystatechange \”,wildGoose 25 \“ onreadystatechange \”,monkeyWrench 25 \“ onreadystatechange \”
您必须在某个地方定义了变量“ 5”,并且没有使用它。
请记住,道格拉斯·克罗克福德(Douglas Crockford)是个聪明人,他的JavaScript书非常出色,但是他的话语和JSLint是一个人的建议,而不是福音。 :)