javascript - JSLint - 预期为 '{' 而看到 'type'

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

最佳答案

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

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

来自 JSLint 文档,

block ( http://www.jslint.com/help.html )

JSLint 需要带有 functionifswitchwhilefor 的 block >、dotry 语句,没有其他地方。

JSLint 预计 ifwhiledofor 语句将使用 block { 即用大括号括起来的语句}

JavaScript 允许这样编写 if:

if (condition)
    statement;

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

if (condition) {
    statements;
}

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

关于javascript - JSLint - 预期为 '{' 而看到 'type',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46378872/

相关文章:

javascript - jQuery 'each' 简写

Javascript 选择所有周围的元素

javascript - 如何等待另一个回调的ajax回调结果?

javascript - 反向 switch 语句是否可以接受 JavaScript?

javascript - 转换时jsLint奇怪的分配错误

javascript - 使用javascript捕获用户空闲

javascript - socket io, node js, 将图像/文件从服务器发送到客户端的简单示例

javascript - 为什么使用||时 'Unexpected "."'括号中默认值的运算符

javascript - 声明没有未使用变量的 Marionette/Backbone 路由器 - JSLint

javascript - var 语句应该放在函数的顶部吗?