【发布时间】:2017-01-07 05:42:02
【问题描述】:
我最近开始看到 JSLint 发出以下警告:
JSLint:预期为 '"',但看到的是 '''。
换句话说,它希望我使用双引号而不是单引号。为什么 JSLint 会警告我?单引号和双引号在 JavaScript 中是否或多或少可以互换,仅取决于程序员的偏好?
【问题讨论】:
标签: javascript jslint
我最近开始看到 JSLint 发出以下警告:
JSLint:预期为 '"',但看到的是 '''。
换句话说,它希望我使用双引号而不是单引号。为什么 JSLint 会警告我?单引号和双引号在 JavaScript 中是否或多或少可以互换,仅取决于程序员的偏好?
【问题讨论】:
标签: javascript jslint
JSLint 的2016-02-07 version 更改为更喜欢双引号而不是单引号。 Douglas Crockford,JSLint 开发者和有影响力的 JavaScript 和 JSON 开发者,provided this rationale:
当我第一次遇到 JavaScript 时,[原文如此] 很惊讶它有两种引号,我试图理解它,使用单引号表示内部文本,使用双引号表示外部文本。
但最终我意识到,当只需要一个时,由于拥有两个而造成的混乱和混乱是不值得的。我决定使用 double 因为这是 JSON 使用的,它避免了由撇号重载引起的错误。我被那个咬了。
总的来说,我正在寻找使语言更小更好的方法。引号与 null & undefined 属于同一类。我们真的不需要两者。
我在自己的一些代码上进行了尝试,我认为这是一种改进。最终,我可能会将 option.single 添加到 JSLint。
这确实发生了:option.single 已添加到 JSLint 的 2016-06-09 version 中,因此您现在可以告诉 JSLint 选择性地忽略单引号。
Crockford 更简洁地重申了他在 a later discussion 中使用双引号而不是单引号的理由:
我发现人们在管理这两种报价时有些困难。由于第二组完全没有必要,而且由于第二组 [单引号] 会带来问题和混乱,我现在建议只使用双引号。
【讨论】:
alert( 'Don't try this!'); 的例子。我认为他的意思是撇号既用于英语单词的正确拼写,又用于 JavaScript 中的语法标记。到目前为止,我还没有发现任何关于他可能暗示的其他问题。
这是一个非常自以为是的工具发出的垃圾邮件警告,没有充分的理由。
旧的 lint 工具(JSLint 和 JSHint)已被 ESLint 完全取代,它支持更多规则并允许您配置您真正感兴趣的选项。具体来说,quotes rule 允许您选择单个、加倍,或完全忽略引用。
【讨论】: