协慌网

登录 贡献 社区

何时在 JavaScript 中使用双引号或单引号?

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

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

答案

在不同库中使用单一与双重的最可能原因是程序员偏好和 / 或 API 一致性。

除了一致之外,使用最适合字符串的:

使用其他类型的引用作为文字:

alert('Say "Hello"');
alert("Say 'Hello'");

...... 但这会变得复杂......

alert("It's \"game\" time.");
alert('It\'s "game" time.');

另一个选项,ES6 中的新选项,是使用back-tick字符的模板文字

alert(`Use "double" and 'single' quotes in the same string`);
alert(`Escape the \` back-tick character in a string`);

模板文字为以下内容提供了一个干净的语法:变量插值,多行字符串等。

如果你正在处理 JSON,应该注意严格来说,JSON 字符串必须加双引号。当然,许多库也支持单引号,但在我意识到单个引用字符串实际上不符合 JSON 标准之前,我在其中一个项目中遇到了很多问题。

没有一个更好的解决方案 ; 但是,我想有时候双引号可能更令人满意:

  • 新手已经熟悉他们语言的双引号 。在英语中,我们必须使用双引号"来识别引用文本的段落。如果我们使用单引号' ,读者可能会将其误解为收缩。文本段落的另一个含义是'表示'colloquial' 意思。与预先存在的语言保持一致是有意义的,这可能会简化代码的学习和解释。
  • 双引号消除了逃避撇号的需要 (如在收缩中)。考虑一下这个字符串: "I'm going to the mall" ,而不是其他逃过的版本: 'I\'m going to the mall'
  • 双引号表示许多其他语言中的字符串 。学习 Java 或 C 等新语言时,总是使用双引号。在 Ruby,PHP 和 Perl 中,单引号字符串表示没有反斜杠转义,而双引号支持它们。

  • JSON 表示法用双引号编写。

尽管如此,正如其他人所说,保持一致是最重要的。