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

JavaScript

前端老丝

2020-03-09

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

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

第215篇《什么时候在JavaScript中使用双引号或单引号?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

15个回答
Itachi猪猪Green 2020.03.09

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

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

Itachi米亚斯丁 2020.03.09

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

猿小小 2020.03.09

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

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

达蒙乐 2020.03.09

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

规格很重要:

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

这就像一个基准

a=b;

比...快

a = b;

(多余的空格)

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

Mandy猴子 2020.03.09

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

JinJinSam 2020.03.09

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

"This is my #{name}"

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

`This is my ${name}`
猴子神乐 2020.03.09

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

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

猴子古一蛋蛋 2020.03.09

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

伽罗JinJin宝儿 2020.03.09

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

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

梅小宇宙 2020.03.09

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

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

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

Gil米亚卡卡西 2020.03.09

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

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

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

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

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

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

Itachi阳光 2020.03.09

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

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

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

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

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

单引号

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

单引号:

没有偏好:

双引号:

神乐路易 2020.03.09

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

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android