16

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

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

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

4

4 回答 4

22

这只是某人的意见。

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

甚至Google JavaScript Style Guide都说单引号是首选,但没有给出充分的理由:

“为了保持一致,单引号 (') 优于双引号 (")。这在创建包含 HTML 的字符串时很有帮助”

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

很多人似乎认为 XHTML 只对双引号有效,但事实并非如此:XHTML 规范也允许。(话虽如此,我遇到的 98% 的 XML,包括 XHTML,使用双引号。)

在任何一个源文件中,我都尝试使用其中一个,但如果中间的一行代码需要大量嵌入的引号,我很乐意仅更改该行以避免在该行中出现大量转义。

更新:只记得 JSON 只对双引号有效。显然 JSON 不是 JavaScript,但这仍然是为什么(a)一些人可能更喜欢在他们的 JavaScript 中使用双引号,以便对象文字看起来像 JSON,以及(b)一些人可能更喜欢单引号,以便他们可以手动编码 JSON 而无需不得不转义双引号。(不,我不建议手动编码 JSON,但我已经看到它完成了。)

于 2011-10-01T05:28:15.957 回答
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>";

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

于 2011-10-01T04:42:58.973 回答
2

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

至于 JSLint 警告,它只是试图强制执行任意标准以促进更一致的编码风格,就像它在其他间距和缩进问题上所做的那样。

于 2011-10-01T05:37:07.320 回答
1

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

jsperf 中有很多测试,所有测试都得到几乎相同的结果:

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

问候。

于 2012-11-19T23:01:34.860 回答