console.log("double");
与 console.log('single');
我看到越来越多的JavaScript库在处理字符串时使用单引号。为何一个使用另一个原因?我认为它们几乎可以互换。
console.log("double");
与 console.log('single');
我看到越来越多的JavaScript库在处理字符串时使用单引号。为何一个使用另一个原因?我认为它们几乎可以互换。
在阅读了所有可能更快或更有利的答案之后,我会说双引号更好或更快速,因为Google闭包编译器将单引号转换为双引号。
完全没有区别,因此,保持转义数很少主要取决于口味和字符串中的内容(或者如果JS代码本身在字符串中)。
速度差异图例可能来自PHP世界,其中两个引号的行为不同。
JavaScript中的单引号和双引号没有区别。
规格很重要:
也许会有性能差异,但是它们绝对是最小的,并且会根据浏览器的实现每天变化。除非您的JavaScript应用程序长达数十万个,否则进一步的讨论是徒劳的。
这就像一个基准
a=b;
比...快
a = b;
(多余的空格)
今天,在特定的浏览器和平台等中。
如果您要在JavaScript和C#之间来回跳动,则最好为通用约定(双引号)训练手指。
使用CoffeeScript时,我使用双引号。我同意您应该选择其中一个并坚持下去。当使用双引号时,CoffeeScript为您提供插值。
"This is my #{name}"
ES6对模板字符串使用了反勾号(`)。这可能有充分的理由,但是在编码时,为了获得插值功能,将字符串文字字符从引号或双引号更改为反斜杠可能很麻烦。CoffeeScript可能不是完美的,但是在各处使用相同的字符串文字字符(双引号)并且始终能够插值是一个不错的功能。
`This is my ${name}`
有些人声称看到性能差异:旧邮件列表线程。但是我找不到任何要确认的东西。
最主要的是要查看在字符串内部使用哪种引号(双引号或单引号)。它有助于将逃生通道的数量保持在较低水平。例如,当您在字符串中使用html时,使用单引号会更容易,这样您就不必在属性周围转义所有双引号。
使用单引号的一个(愚蠢的)原因是它们不需要您按Shift键来键入它们,而双引号则需要。(我假设平均字符串不需要转义,这是一个合理的假设。)现在,让我们假设我每天编写200行代码。也许在那200行中,我有30个引号。也许输入双引号比输入单引号要花0.1秒的时间(因为我必须按Shift键)。然后在任何一天,我浪费3秒。如果我以这种方式进行编码,在40年中每年花费200天,那么我就浪费了6.7个小时的时间。值得深思。
不知道这在当今世界是否有意义,但是双引号曾经用于需要处理控制字符的内容,而单引号则用于不需要处理的字符。
编译器将在双引号字符串上运行字符串操作,而单引号字符串实际上保持不变。这通常导致“好的”开发人员选择对不包含控制字符(如\n
或\0
(不在单引号内处理)的字符串)使用单引号,并在需要解析字符串时使用双引号(对于处理字符串)。
让我们看一下参考的作用。
在jquery.js中,每个字符串都用双引号引起来。
因此,从现在开始,我将使用双引号字符串。(我正在使用单身!)
这主要是风格和喜好问题。其他答案中还有一些相当有趣且有用的技术探索,因此也许我唯一要添加的就是提供一些世俗的建议。
如果您在公司或团队中编码,那么遵循“房屋风格”可能是一个好主意。
如果您一个人在黑客一些副项目,那么请看一下社区中一些杰出的领导人。例如,假设您进入了Node.js。看一下核心模块,例如underscore.js或express,看看它们使用什么约定,然后考虑遵循。
如果两个约定均被使用,则请遵循您的个人
喜好。
如果您没有个人喜好,那就掷硬币。
如果您没有硬币,那啤酒就在我身上;)
从技术上讲,没有区别,只是样式和约定。
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 :)
严格来说,意义没有区别。因此选择取决于方便。
以下是一些可能影响您的选择的因素:
如果要处理JSON,则应注意严格来说,JSON字符串必须用双引号引起来。当然,许多库也支持单引号,但是在我的一个项目中遇到了很大的问题,然后才意识到单引号实际上并不符合JSON标准。
您可以使用单引号或双引号。例如,这使您能够轻松地将javascript嵌套在HTML属性中,而无需转义引号。使用PHP创建javascript时也是如此。
一般的想法是:如果可能的话,可以使用不需要转义的引号。更少的转义=更好的代码。