JSLint不断返回以下错误:预期'{'而不是'type',我该如何解决?
var pfx = ['webkit', 'moz', 'MS', 'o', ''];
function prefixedEventListener(element, type, callback) {
for (var p = 0; p < pfx.length; p++) {
if (!pfx[p]) type = type.toLowerCase();
element.addEventListener(pfx[p]+type, callback, false);
}
}
答案 0 :(得分:2)
我认为根据JSlint规则,if
应该有大括号
if (!pfx[p]) {
type = type.toLowerCase();
}
来自JSLint docs,
阻止(http://www.jslint.com/help.html)
JSLint期望包含function
,if
,switch
,while
,for
,do
和try
语句的数据块而在其他任何地方。
JSLint期望if
,while
,do
和for
语句将使用块{
生成,其中语句用大括号{{括起来1}}。
JavaScript允许if这样编写:
}
众所周知,这种形式会导致许多程序员使用相同代码的项目出错。这就是JSLint期望使用块的原因:
if (condition)
statement;
经验表明,这种形式更具弹性。
答案 1 :(得分:2)
JSLint期望if,while,do和for语句将使用块{即括号括在括号中}。
线路问题
if (condition) {
statements;
}
虽然有效,但线条更容易混淆并且容易出现皮带错误,并且不会将其视为有效的块
只是为了让JSLint微笑,你可以将其重写为
if (!pfx[p]) type = type.toLowerCase();
答案 2 :(得分:1)
试试这个:
var pfx = ['webkit', 'moz', 'MS', 'o', ''];
function prefixedEventListener(element, type, callback) {
for (var p = 0; p < pfx.length; p++) {
if (!pfx[p]) {
type = type.toLowerCase();
}
element.addEventListener(pfx[p] + type, callback, false);
}
}
&#13;