有关条件表达式的样式或错误的JSLINT警告

时间:2011-03-28 02:16:25

标签: javascript debugging conditional expression jslint

我正在尝试解决JSLINT警告我不知道如何解决的两件事。应该用哪些代码替换哪一行?我已经粘贴了有问题的代码以及下面的警告。非常感谢你的建议/答案。

JSLINT说:

第137行的

问题:预期条件表达式而不是看到作业。

while(elem = document.getElementById("optionsDiv"+g))

第140行的问题:预期'{'而是看到'返回'。

return g;


function isAnyOptionVisible()
{
    var g=0;
    while(elem = document.getElementById("optionsDiv"+g))
    {
        if(elem.className==="optionsDivVisible")
            return g;
        g++;
    }
    return -1;
}

1 个答案:

答案 0 :(得分:6)

条件没有任何问题,但如果elem未在外部范围内声明,则var elem, g=0; 可能是全局的。如果没有声明,请事先这样做:

while((elem = document.getElementById("optionsDiv"+g)) !== null)

如果您想让JSLint满意,可以向null添加显式比较:

    if(elem.className==="optionsDivVisible")
    {
        return g;
    }
    g++;

我没有看到任何关于“预期{”的内容。但是,将g ++放在与括号相同的行上是奇怪的风格。

请记住,JSlint部分是关于Crockford的个人偏好,你并不总是同意这一点。

编辑:好的,第二个错误是因为JSLint希望你把回报放在大括号中,例如:

{{1}}

这也是我喜欢编写的样式。我发现它避免了某些错误。然而,这又是主观的。显而易见的权衡是它增加了两行。