为什么"单引号字符串优先于双引号字符串." 在js?

Lyn*_*ynn 16 javascript gjslint

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

所以为什么?我对此有点困惑.为什么单引号首选?

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

nnn*_*nnn 22

这只是某人的意见.

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

甚至谷歌JavaScript风格指南也表示单引号是首选而没有充分理由:

"为了保持一致性,单引号(')优于双引号(").这在创建包含HTML的字符串时很有用"

(然后继续给出一个甚至不包含HTML的字符串的简短示例.)

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

在任何一个源文件中,我都试图坚持使用其中一个,但如果中间的一行代码需要很多嵌入式引号,我很乐意改变这一行,以避免在该行中进行大量转义.

更新:记得JSON只对双引号有效.显然JSON不是JavaScript,但这仍然是为什么(a)有些人可能更喜欢JavaScript中的双引号,以便对象文字看起来像JSON,而(b)有些人可能更喜欢单引号,这样他们就可以手动编码JSON而不用不得不逃避双引号.(不,我不建议手动编码JSON,但我已经看过它了.)

  • 对于那些没有看到答案的人:[这里是](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) (4认同)
  • 这一切都很好,直到你遇到一些决定用regexps解析XHTML的小丑...... (2认同)

Jas*_*aro 16

如果使用单引号,则不必转义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>";

更多的工作,更难以维护,更容易提交错误.

  • 我可以使用HTML引用的单引号. (23认同)
  • 当你在HTML中的属性中有Javascript字符串时,这也是相反的方法(我使用的模板引擎常见) (2认同)