我可以把这个评论放在哪里? JSLint 抱怨展示位置
Posted
技术标签:
【中文标题】我可以把这个评论放在哪里? JSLint 抱怨展示位置【英文标题】:Where can I put this comment? JSLint complains about the placement 【发布时间】: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/else
的 not 包含重定向。
【问题讨论】:
JSLint, else and Expected exactly one space between '' and 'else' error的可能重复 老实说,您在该示例中提供的 cmets 甚至没有比代码已经说明的更多内容,那么为什么还要麻烦呢?他们甚至可能在这些条件下。 @guessimtoolate 为了简洁起见,我编辑了代码。实际的代码块更复杂。 @EugeneEvdokimov 这不是重复的。我知道为什么会显示错误。我想知道的是 where 放置评论。这个问题的答案只是证实了我已经知道的。 我想 Crockford 会让您将两个 cmets 都放在顶部:“如果发生这种情况,我们会这样做,否则我们也会这样做”。这允许稍后浏览的读者无需滚动即可获得整个控制块的要点。 “段落”没有被拆分。 【参考方案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
之间正好有一个空格)以上是关于我可以把这个评论放在哪里? JSLint 抱怨展示位置的主要内容,如果未能解决你的问题,请参考以下文章
为啥 jslint 在模板字符串上抱怨 Unexpected '`'
我在哪里可以找到 Aptana Studio 中的 jslint 配置文件