console.log("double");
对比 console.log('single');
我看到越来越多的 JavaScript 库在处理字符串时使用单引号。使用一个而不是另一个的原因是什么?
我认为它们几乎可以互换。
console.log("double");
对比 console.log('single');
我看到越来越多的 JavaScript 库在处理字符串时使用单引号。使用一个而不是另一个的原因是什么?
我认为它们几乎可以互换。
在不同的库中使用 single 和 double 的最可能原因是程序员偏好和/或 API 一致性。除了保持一致之外,请使用最适合字符串的那个。
使用其他类型的引号作为文字:
alert('Say "Hello"');
alert("Say 'Hello'");
这可能会变得复杂:
alert("It's \"game\" time.");
alert('It\'s "game" time.');
ECMAScript 6 中的另一个新选项是使用反引号字符的模板文字:
alert(`Use "double" and 'single' quotes in the same string`);
alert(`Escape the \` back-tick character and the \${ dollar-brace sequence in a string`);
模板文字提供了一种简洁的语法:变量插值、多行字符串等。
请注意,JSON被正式指定为使用双引号,这可能值得考虑,具体取决于系统要求。
如果你在处理 JSON,需要注意的是,严格来说,JSON 字符串必须是双引号的。当然,许多库也支持单引号,但在我意识到单引号字符串实际上不符合 JSON 标准之前,我在我的一个项目中遇到了很大的问题。
没有更好的解决方案;但是,我想争辩说,有时双引号可能更可取:
"
来标识一段引用文本。如果我们使用单引号'
,读者可能会将其误解为收缩。被 包围的一段文本的另一个含义'
表示“口语”含义。与预先存在的语言保持一致是有意义的,这可能会简化代码的学习和解释。"I'm going to the mall"
, 与其他转义版本: 'I\'m going to the mall'
。双引号在许多其他语言中表示字符串。当您学习 Java 或 C 等新语言时,总是使用双引号。在 Ruby、PHP 和 Perl 中,单引号字符串表示没有反斜杠转义,而双引号支持它们。
JSON 表示法是用双引号编写的。
尽管如此,正如其他人所说,最重要的是保持一致。
规范的第 7.8.4 节描述了文字字符串表示法。唯一的区别是 DoubleStringCharacter 是“SourceCharacter 但不是双引号”,而 SingleStringCharacter 是“SourceCharacter 但不是单引号”。所以唯一的区别可以这样证明:
'A string that\'s single quoted'
"A string that's double quoted"
所以这取决于你想要做多少引号转义。显然,这同样适用于双引号字符串中的双引号。