为什么JSLint要我使用双引号而不是单引号?预计& # 39;“& # 39;而是看到了'''

Why is JSLint wanting me to use double quotes instead of single quotes? Expected '"' and instead saw '''

本文关键字:JSLint 为什么 单引号 预计      更新时间:2023-09-26

我最近开始看到JSLint给出以下警告:

JSLint:期望'"'而不是看到"' .

换句话说,它希望我使用双引号而不是单引号。为什么JSLint要警告我这个?单引号和双引号在JavaScript中或多或少是可以互换的,只取决于程序员的偏好吗?

2016-02-07版本的JSLint将双引号改为单引号。Douglas Crockford是JSLint的开发者,也是JavaScript和JSON的重要开发者,他提供了这样的基本原理:

当我第一次接触JavaScript时,它[原文如此]惊讶于它有两种引号,我试图弄明白它的意义,使用单引号作为内部文本,双引号作为外部文本。

但最终我意识到,这种区别不值得因为只需要一个而有两个而带来的混乱和困惑。我决定使用double,因为这是JSON使用的,它避免了由撇号重载引起的错误。我被那件事咬了。

总的来说,我在寻找使语言更小更好的方法。引号与null &属于同一类。未定义的。我们真的不需要两者。

我在自己的代码中尝试了一下,我认为这是一个改进。最后,我可能会添加选项。

这确实发生了:option.single是在2016-06-09版本的JSLint中添加的,所以你现在可以告诉JSLint选择性地忽略单引号。

Crockford在随后的讨论中更简洁地重申了双引号优于单引号的理由:

我发现人们很难管理这两种类型的报价。由于第二组是完全不必要的,并且由于第二组[单引号]会引入问题和混淆,我现在建议只使用双引号。

这是一个非常固执己见的工具发出的垃圾邮件警告,没有很好的理由。

旧的lint工具(JSLint和JSHint)已经完全被ESLint取代,ESLint支持更多的规则,并允许你配置你真正感兴趣的选项。具体来说,quotes规则允许您选择单引号、双引号或完全忽略引号。