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

时间:2011-10-01 04:41:35

标签: javascript gjslint

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

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

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

4 个答案:

答案 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中进行了很多测试,所有这些测试都得到了几乎相同的结果:

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

问候。

相关问题