为什么JSLint在这段代码中给我一个“意外的'。”错误?

时间:2013-12-20 18:14:22

标签: javascript html phpstorm jslint

JSLint在第2行(带有for循环)的代码中给出了“意外'。'”错误,此时它也停止扫描文件。

var form = document.form1;
for (var i=0; i < form.elements.length; i++) {
  // inner-loop code not included here
}

我在Chrome中检查了Developer Console,而form.elements确实包含了我所期望的内容。为什么JSLint会给我这个错误?

我正在通过PhpStorm使用JSLint。

2 个答案:

答案 0 :(得分:1)

我无法在JSLint中重现您的问题。但是,由于JS没有块作用域而不是函数作用域,因此JSLint(Doug Crockford)建议在函数顶部发生所有变量声明。

他还建议不要使用++运算符,而是使用+= 1。在JSLint中尝试以下代码,并确保“假设浏览器”设置为true

function foo() {
    'use strict';

    var form = document.form1,
        i;
    for (i = 0; i < form.elements.length; i += 1) {
        window.console.log(i);
    }
}

答案 1 :(得分:1)

我们需要更多信息才能真正回答这个问题。 HTML和所有的JS。如果在问题正文中发帖太长,您可以尝试在http://jsfiddle.net/

等服务中托管它

如果无法重现它,我会猜测document.form1不是你想要的。也许你的意思是document.forms。这样就可以访问DOM中的所有表单作为htmlCollection,您可以像数组一样访问它。例如document.forms[1]。阅读更多https://developer.mozilla.org/en-US/docs/Web/API/document.forms