什么时候在JavaScript中使用双引号或单引号?

console.log("double");console.log('single');

我看到越来越多的JavaScript库在处理字符串时使用单引号。为何一个使用另一个原因?我认为它们几乎可以互换。

Itachi猪猪Green2020/03/09 19:08:11

您可以使用单引号或双引号。例如,这使您能够轻松地将javascript嵌套在HTML属性中,而无需转义引号。使用PHP创建javascript时也是如此。

一般的想法是:如果可能的话,可以使用不需要转义的引号。更少的转义=更好的代码。

Itachi米亚斯丁2020/03/09 19:08:11

在阅读了所有可能更快或更有利的答案之后,我会说双引号更好或更快速,因为Google闭包编译器将单引号转换为双引号。

猿小小2020/03/09 19:08:11

完全没有区别,因此,保持转义数很少主要取决于口味和字符串中的内容(或者如果JS代码本身在字符串中)。

速度差异图例可能来自PHP世界,其中两个引号的行为不同。

达蒙乐2020/03/09 19:08:10

JavaScript中的单引号和双引号没有区别。

规格很重要:

也许会有性能差异,但是它们绝对是最小的,并且会根据浏览器的实现每天变化。除非您的JavaScript应用程序长达数十万个,否则进一步的讨论是徒劳的。

这就像一个基准

a=b;

比...快

a = b;

(多余的空格)

今天,在特定的浏览器和平台等中。

Mandy猴子2020/03/09 19:08:10

如果您要在JavaScript和C#之间来回跳动,则最好为通用约定(双引号)训练手指。

JinJinSam2020/03/09 19:08:10

使用CoffeeScript时,我使用双引号。我同意您应该选择其中一个并坚持下去。当使用双引号时,CoffeeScript为您提供插值。

"This is my #{name}"

ES6对模板字符串使用了反勾号(`)。这可能有充分的理由,但是在编码时,为了获得插值功能,将字符串文字字符从引号或双引号更改为反斜杠可能很麻烦。CoffeeScript可能不是完美的,但是在各处使用相同的字符串文字字符(双引号)并且始终能够插值是一个不错的功能。

`This is my ${name}`
猴子神乐2020/03/09 19:08:10

有些人声称看到性能差异:旧邮件列表线程但是我找不到任何要确认的东西。

最主要的是要查看在字符串内部使用哪种引号(双引号或单引号)。它有助于将逃生通道的数量保持在较低水平。例如,当您在字符串中使用html时,使用单引号会更容易,这样您就不必在属性周围转义所有双引号。

猴子古一蛋蛋2020/03/09 19:08:10

使用单引号的一个(愚蠢的)原因是它们不需要您按Shift键来键入它们,而双引号则需要。(我假设平均字符串不需要转义,这是一个合理的假设。)现在,让我们假设我每天编写200行代码。也许在那200行中,我有30个引号。也许输入双引号比输入单引号要花0.1秒的时间(因为我必须按Shift键)。然后在任何一天,我浪费3秒。如果我以这种方式进行编码,在40年中每年花费200天,那么我就浪费了6.7个小时的时间。值得深思。

伽罗JinJin宝儿2020/03/09 19:08:10

不知道这在当今世界是否有意义,但是双引号曾经用于需要处理控制字符的内容,而单引号则用于不需要处理的字符。

编译器将在双引号字符串上运行字符串操作,而单引号字符串实际上保持不变。这通常导致“好的”开发人员选择对不包含控制字符(如\n\0(不在单引号内处理)的字符串)使用单引号,并在需要解析字符串时使用双引号(对于处理字符串)。

梅小宇宙2020/03/09 19:08:10

让我们看一下参考的作用。

在jquery.js中,每个字符串都用双引号引起来。

因此,从现在开始,我将使用双引号字符串。(我正在使用单身!)

Gil米亚卡卡西2020/03/09 19:08:10

这主要是风格和喜好问题。其他答案中还有一些相当有趣且有用的技术探索,因此也许我唯一要添加的就是提供一些世俗的建议。

  • 如果您在公司或团队中编码,那么遵循“房屋风格”可能是一个好主意。

  • 如果您一个人在黑客一些副项目,那么请看一下社区中一些杰出的领导人。例如,假设您进入了Node.js。看一下核心模块,例如underscore.js或express,看看它们使用什么约定,然后考虑遵循。

  • 如果两个约定均被使用,则请遵循您的个人
    喜好。

  • 如果您没有个人喜好,那就掷硬币。

  • 如果您没有硬币,啤酒就在我身上;)

Itachi阳光2020/03/09 19:08:10

从技术上讲,没有区别,只是样式和约定。

Douglas Crockford recommends using single quotes for internal strings and double quotes for external (by external we mean those to be displayed to user of application, like messages or alerts).

I personally follow that.

UPDATE: It appears that Mr. Crockford changed his mind and now recommends using double quotes throughout :)

小小村村2020/03/09 19:08:10

严格来说,意义没有区别。因此选择取决于方便。

以下是一些可能影响您的选择的因素:

  • 房屋风格:一些开发人员组已经使用一种约定或另一种约定。
  • 客户端要求:您将在字符串中使用引号吗?(请参阅Ady的答案)。
  • 服务器端语言:VB.Net人们可能选择对Java脚本使用单引号,以便可以在服务器端构建脚本(VB.Net对字符串使用双引号,因此易于区分Java脚本字符串(如果使用单引号)。
  • 库代码:如果使用的库使用特定样式,则可以考虑自己使用相同的样式。
  • 个人喜好:您可能会认为一种或其他样式看起来更好。
小卤蛋前端2020/03/09 19:08:10

单引号

我希望双引号是标准的,因为它们有更多的意义,但是我继续使用单引号,因为它们在场景中占主导地位。

单引号:

没有偏好:

双引号:

神乐路易2020/03/09 19:08:10

如果要处理JSON,则应注意严格来说,JSON字符串必须用双引号引起来。当然,许多库也支持单引号,但是在我的一个项目中遇到了很大的问题,然后才意识到单引号实际上并不符合JSON标准。