我正在尝试解决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;
}
答案 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}}
这也是我喜欢编写的样式。我发现它避免了某些错误。然而,这又是主观的。显而易见的权衡是它增加了两行。