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

问题描述:

在使用gjslint时,我收到了一条提示:“单引号字符串优于双引号字符串”。为什么“单引号字符串优先于双引号字符串”。在js?

那么为什么?我对此有点困惑。为什么单引号优先?

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

+0

好吧,例如,[JSLint](http://www.jslint.com/)更喜欢单引号字符串的双引号字符串。 –

这只是某人的意见。

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

即使Google JavaScript Style Guide说,单引号没有给予充分的理由首选:

“为了保持一致性单引号('),优选以双引号(”)。 此创建的字符串,包括HTML”

(它接着给一个字符串,甚至不包括HTML的一个很短的例子。)

很多人似乎当是有帮助相信XHTML仅适用于双引号,但事实并非如此:XHTML规范允许使用(尽管如此,我已经运行了98%的XML,包括XHTML,使用双引号。)

在任何一个源文件中,我试图坚持一个或另一个,但如果中间的一行代码需要大量的emb edded quotes我会很乐意改变这一行,以避免在该行大量逃脱。

更新:只记得JSON只适用于双引号。很明显,JSON不是JavaScript,但这仍然是(a)有些人可能更喜欢在JavaScript中使用双引号,这样对象文字看起来像JSON,(b)有些人可能更喜欢单引号,这样他们就可以手动编码JSON而无需必须逃避双引号。 (不,我不建议手动编码JSON,但我已经看到它完成了。)

+2

一切都很好,直到遇到一些决定用正则表达式解析XHTML的小丑... –

+1

@Donal - Ha!那么,这样的人比我选择使用哪种类型的报价有更多的问题。 – nnnnnn

+0

有一个着名的SO回答这样的人... –

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

例如...

单引号,你可以做到这一点

var a = '<a href="something.html" rel="yes" title="whatever">a link/a>';

加上双引号,你将需要逃生者双引号内,像这样

var a = "<a href=\"something.html\" rel=\"yes\" title=\"whatever\">a link/a>";

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

+21

我可以使用HTML属性的单引号。 – BoltClock

+1

True @BoltClock。尽管我认为大多数使用HTML开发人员使用dbl引号。 –

+2

这也适用于其他方式,当您在HTML中的属性内使用Javascript字符串时(我使用的模板引擎常见) – hugomg

我的键盘有一个'/'键,所以我可以轻松地键入一个单引号,但需要按shift键进行双引号。:)

至于JSLint警告它只是试图执行一个任意的标准,以促进更一致的编码风格,就像它如何处理其他间距和缩进问题。

在性能方面,根据http://jsperf.com,您在某些浏览器中获得的性能几乎相同,而在其他一些浏览器中获得的性能几乎相同。

有一个在jsperf大量的测试,他们都得到几乎相同的结果:

最后,我想使用单引号或双引号只是一个问题品味而不是表现的问题。

问候。