【问题标题】:Where can I put this comment? JSLint complains about the placement我可以把这个评论放在哪里? JSLint 抱怨展示位置
【发布时间】:2013-10-01 12:51:11
【问题描述】:

我在一个项目上运行JSLint,我遇到了这个错误:

预计 }else 之间正好有一个空格

在这个代码块上:

// Check for the existance of the file created by firstrun.js
if (runOnce.exists) {
    window.location = 'app:/core/firstrun.html';
}

// Check for version info
else if (!versionInfo.exists) {
    window.location = 'app:/core/createVersion.html';
}

// Check for version info 行显然是导致问题的原因;但是克罗克福德会让我把这条评论放在哪里?

我显然可以将else if 更改为if,因为第一个if 包含重定向;但我有其他评论 if/else if/elsenot 包含重定向。

【问题讨论】:

  • 老实说,您在该示例中提供的 cmets 甚至没有比代码已经说明的更多内容,那么为什么还要麻烦呢?他们甚至可能在这些条件下。
  • @guessimtoolate 为了简洁起见,我编辑了代码。实际的代码块更复杂。
  • @EugeneEvdokimov 这不是重复的。我知道为什么会显示错误。我想知道的是 where 放置评论。这个问题的答案只是证实了我已经知道的。
  • 我想 Crockford 会让您将两个 cmets 都放在顶部:“如果发生这种情况,我们会这样做,否则我们也会这样做”。这允许稍后浏览的读者无需滚动即可获得整个控制块的要点。 “段落”没有被拆分。

标签: javascript jslint


【解决方案1】:

设置 JSLint 选项以允许混乱的空白,否则它会尝试强制执行自己的空白样式规则,这很愚蠢(IMO):

/*jslint white: true */

【讨论】:

  • 使用 Lint 的想法是强制执行严格的编码风格,这就是我/我们正在使用它的原因。这不符合重点。
  • 大声笑。然后你必须使用@Joe 的风格。也就是说,我认为你已经回答了你自己的问题——如果你想要 Crockford 的空白样式(JSLint imo 中最没用的部分之一),你必须改变你的。如果你想要你的,你设置white:true。 Crockford 确实为您提供这些设置是有原因的。乔或科林都有“正确”的答案。
【解决方案2】:

看起来有点怪,不过我用的是这种风格。

if (runOnce.exists) {
    // Check for the existance of the file created by firstrun.js
    window.location = 'app:/core/firstrun.html';
} else if (!versionInfo.exists) {
    // Check for version info
    window.location = 'app:/core/createVersion.html';
}

老实说,在这种情况下,请忘记 JSLint。
这些只是建议,而不是规则。我认为可读性在这里更重要。

【讨论】:

    【解决方案3】:

    我知道这听起来很奇怪,但您可以尝试将其与 else 内联 像这样:

    else if (!versionInfo.exists) { // Check for version info    
            window.location = 'app:/core/createVersion.html';    
    }
    

    来自 JsFiddle 的 JSHint 说这段 js 在语法上是有效的:/

    【讨论】:

    • 必须是} else if (!versionInfo.exists) { // Check for version info,前面是}。不是一个可怕的想法,但它看起来并不好。不过我给你投了赞成票!另外, JSHint !== JSLint; Hint 是一个社区分支,适合不喜欢 Lint 严格性的人。
    • 不,不是,} 在上面的单独一行中。
    • @CollinGrady 这在 JSLint 中无效。它会产生完全相同的错误(预计在 }else 之间正好有一个空格)
    猜你喜欢
    • 1970-01-01
    • 2020-09-17
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多