Javascript 为什么;单引号字符串优先于双引号字符串。”;在js中?

Javascript 为什么;单引号字符串优先于双引号字符串。”;在js中?,javascript,gjslint,Javascript,Gjslint,在使用gjslint时,我得到了一个提示:“单引号字符串优先于双引号字符串” 那为什么呢?我对此有点困惑。为什么选择单引号 希望能得到一些帮助。谢谢大家。如果使用单引号,则不必在html中转义双引号 例如 使用单引号可以做到这一点 var a='a link/a>' 对于双引号,您需要对双引号内的内容进行转义,如下所示 var a=“a链接/a>” 更多的工作,更难维护,更容易犯错误。这只是某人的意见 很多人确实喜欢单引号,但也有很多人喜欢双引号。我倾向于使用双引号,这只是出于其他语言的习惯,但

在使用gjslint时,我得到了一个提示:“单引号字符串优先于双引号字符串”

那为什么呢?我对此有点困惑。为什么选择单引号


希望能得到一些帮助。谢谢大家。

如果使用单引号,则不必在html中转义双引号

例如

使用单引号可以做到这一点

var a='a link/a>'

对于双引号,您需要对双引号内的内容进行转义,如下所示

var a=“a链接/a>”


更多的工作,更难维护,更容易犯错误。

这只是某人的意见

很多人确实喜欢单引号,但也有很多人喜欢双引号。我倾向于使用双引号,这只是出于其他语言的习惯,但我没有强烈的偏好:如果我听到一个令人信服的理由,为什么单引号更好,我愿意改变,但到目前为止,我甚至没有听到一个好的理由,更不用说令人信服的理由了

即使是专家也表示,最好使用单引号,但没有给出充分的理由:

为保持一致性,最好使用单引号(')而不是双引号(“)。 这在创建包含HTML的字符串时很有用”

(然后给出了一个甚至不包含HTML的字符串的非常简短的示例。)

很多人似乎认为XHTML只对双引号有效,但事实并非如此:XHTML规范也允许使用双引号(尽管如此,我遇到的98%的XML,包括XHTML,都使用双引号)

在任何一个源文件中,我试图坚持一个或另一个,但是如果中间的一行代码需要大量的嵌入引文,那么我很乐意改变这一行,以避免在这一行中大量逃脱。

更新:刚刚记住,JSON只对双引号有效。很明显,JSON不是JavaScript,但这也是为什么(a)有些人可能更喜欢在JavaScript中使用双引号,使对象文本看起来像JSON,以及(b)的原因有些人可能更喜欢单引号,这样他们就可以手动编码JSON而不必转义双引号。(不,我不建议手动编码JSON,但我已经看过了。)

我的键盘上有一个“/”键,因此我可以轻松地键入单引号,但需要按shift键输入双引号。:)


至于JSLint警告,它只是试图强制执行一个任意的标准,以促进更一致的编码风格,就像它在其他间距和缩进问题上所做的那样。

就性能而言,在某些浏览器中,这两种浏览器的性能几乎相同,而在其他浏览器中,这两种浏览器的性能相同

jsperf中有很多测试,它们都得到了几乎相同的结果:

总之,我认为使用单引号或双引号只是口味问题,而不是性能问题


注意。

我可以对HTML属性使用单引号。True@BoltClock。虽然我认为大多数在HTML中开发的人都使用dbl引号。这也适用于另一种情况,当HTML中的属性中包含Javascript字符串时(我使用的模板引擎中经常出现这种情况),我认为重点是,有时需要转义双引号,有时你更关心的是如何避开撇号。为什么不切换到最方便的上下文呢?在我今天的搜索中,我找不到任何证据表明对单引号的偏见是合理的,除非是作为区分JSON和JS的惯例。这一切都很好,直到你遇到一个决定用regexps解析XHTML的小丑…@Donal-Ha!嗯,这样的人比我选择使用哪种类型的引号有更多的问题。对于这些人来说,有一个著名的SO答案……对于那些没有看到这个答案的人来说:例如,与单引号字符串相比,更喜欢双引号字符串。