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