JSLint -Expected'{'而不是'type'

时间:2017-09-23 11:01:11

标签: javascript jslint

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);
    }
} 

3 个答案:

答案 0 :(得分:2)

我认为根据JSlint规则,if应该有大括号

if (!pfx[p]) {
  type = type.toLowerCase();
}

来自JSLint docs,

阻止http://www.jslint.com/help.html

JSLint期望包含functionifswitchwhilefordotry语句的数据块而在其他任何地方。

JSLint期望ifwhiledofor语句将使用块{生成,其中语句用大括号{{括起来1}}。

JavaScript允许if这样编写:

}

众所周知,这种形式会导致许多程序员使用相同代码的项目出错。这就是JSLint期望使用块的原因:

if (condition)
    statement;

经验表明,这种形式更具弹性。

答案 1 :(得分:2)

来自Lint docs

  

JSLint期望if,while,do和for语句将使用块{即括号括在括号中}。

线路问题

if (condition) {
    statements;
}

虽然有效,但线条更容易混淆并且容易出现皮带错误,并且不会将其视为有效的

只是为了让JSLint微笑,你可以将其重写为

if (!pfx[p]) type = type.toLowerCase();

答案 2 :(得分:1)

试试这个:

&#13;
&#13;
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;
&#13;
&#13;