【问题标题】:why "Single-quoted string preferred over double-quoted string." in js?为什么“单引号字符串优于双引号字符串。”在js中?
【发布时间】:2011-11-28 21:54:59
【问题描述】:

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

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

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

【问题讨论】:

  • 好吧,例如,JSLint 更喜欢双引号字符串而不是单引号字符串。

标签: javascript gjslint


【解决方案1】:

如果使用单引号,则不必在 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 属性只能使用单引号。
  • 真@BoltClock。虽然我认为大多数开发 HTML 的人都使用 dbl 引号。
  • 反之亦然,当您在 HTML 的属性中包含 Javascript 字符串时(我使用的模板引擎很常见)
  • 我认为关键是有时您需要转义双引号,有时您更关心转义撇号。为什么不直接切换到上下文最方便的那个?我在今天的搜索中找不到任何证据表明对单引号的偏见是合理的,除非作为区分 JSON 和 JS 的约定。
【解决方案2】:

这只是某人的意见。

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

即使Google JavaScript Style Guide 也表示首选单引号,但没有给出充分的理由:

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

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

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

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

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

【讨论】:

  • 这一切都很好,直到你遇到一个决定用正则表达式解析 XHTML 的小丑......
  • @Donal - 哈!好吧,这样的人比我选择使用哪种类型的报价有更多的问题。
  • 这样的人有一个著名的 SO 答案……
  • 对于那些没有看到这个答案的人:here it is
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

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

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

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

    问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 2011-03-27
      相关资源
      最近更新 更多