在使用gjslint时,我得到了一个提示:“单引号字符串优先于双引号字符串”。
为什么?我对此有点困惑。为什么单引号首选?
希望得到一些帮助。谢谢大家。
答案 0 :(得分:22)
这只是某人的意见。
很多人都喜欢单引号,但很多人更喜欢双引号。我倾向于仅仅根据其他语言的习惯使用双引号,但我没有强烈的偏好:如果我听到单引号更好的令人信服的理由,我愿意改变,但到目前为止我'甚至没有听到良好的原因,更不用说引人注目的原因了。
即使Google JavaScript Style Guide说单引号是首选而没有充分理由:
“为了保持一致性,单引号(')优先于双引号(”)。 这在创建包含HTML“
的字符串时很有用
(然后继续给出一个甚至不包含HTML的字符串的简短示例。)
许多人似乎相信XHTML只对双引号有效,但事实并非如此:XHTML规范允许。 (话虽如此,我遇到的98%的XML,包括XHTML, 都使用双引号。)
在任何一个源文件中,我都尝试坚持使用其中一个,但如果中间的一行代码需要很多嵌入式引号,我很乐意为这一行改变,以避免大量的转义那条线。
更新:只记得JSON只对双引号有效。显然JSON不是JavaScript,但这仍然是为什么(a)有些人可能更喜欢JavaScript中的双引号,以便对象文字看起来像JSON,(b)有些人可能更喜欢单引号,这样他们就可以手动编码JSON而不用不得不逃避双引号。 (不,我不建议手动编码JSON,但我已经看过它了。)
答案 1 :(得分: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>";
更多工作,更难维护,更容易犯错误。
答案 2 :(得分:2)
我的键盘上有一个'/“键,所以我可以轻松输入一个单引号,但需要按shift键才能显示双引号。:)
至于JSLint警告它只是试图强制执行任意标准以促进更一致的编码风格,就像它在其他间距和缩进问题上的做法一样。
答案 3 :(得分:1)
就性能而言,根据http://jsperf.com,您在某些浏览器中获得的性能几乎相同,而在其他浏览器中则获得相同的性能。
在jsperf中进行了很多测试,所有这些测试都得到了几乎相同的结果:
总之,我认为使用单引号或双引号只是品味问题,而不是性能问题。
问候。