考虑以下两种备选方案:

console.log(“double”);console.log(“单个”);

前者在字符串两边使用双引号,而后者在字符串周围使用单引号。

我看到越来越多的JavaScript库在处理字符串时使用单引号。

这两种用法可以互换吗?如果没有,使用一个是否优于另一个?


当前回答

区别纯粹是文体上的。我曾经是一个双重引用的纳粹分子。现在我几乎在所有情况下都使用单引号。除了编辑器突出显示语法之外,没有什么实际区别。

其他回答

当不能使用单引号时,我会使用双引号,反之亦然:

"'" + singleQuotedValue + "'"
'"' + doubleQuotedValue + '"'

而不是:

'\'' + singleQuotedValue + '\''
"\"" + doubleQuotedValue + "\""

严格地说,意思没有区别;因此,选择归根结底是为了方便。

以下是可能影响您选择的几个因素:

房屋风格:一些开发商已经使用了一种或另一种惯例。客户端要求:您会在字符串中使用引号吗?(见Ady的回答。)服务器端语言:VB.NET人员可能会选择对JavaScript使用单引号,以便可以在服务器端构建脚本(VB.NET对字符串使用双引号,因此如果使用单引号则很容易区分JavaScript字符串)。库代码:如果您正在使用使用特定样式的库,您可以考虑自己使用相同的样式。个人喜好:你可能会觉得一种或另一种风格更好看。

可以使用单引号或双引号。

例如,这使您能够轻松地将JavaScript内容嵌套在HTML属性中,而无需转义引号。使用PHP创建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被正式指定为使用双引号,这可能值得考虑,具体取决于系统需求。

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

规范很重要:

可能存在性能差异,但它们绝对是最小的,并且可以根据浏览器的实现随时更改。除非JavaScript应用程序长达数十万行,否则进一步讨论是徒劳的。

这就像一个基准,如果

a=b;

a = b;

(额外空间)

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