考虑以下两种备选方案:
console.log(“double”);console.log(“单个”);
前者在字符串两边使用双引号,而后者在字符串周围使用单引号。
我看到越来越多的JavaScript库在处理字符串时使用单引号。
这两种用法可以互换吗?如果没有,使用一个是否优于另一个?
考虑以下两种备选方案:
console.log(“double”);console.log(“单个”);
前者在字符串两边使用双引号,而后者在字符串周围使用单引号。
我看到越来越多的JavaScript库在处理字符串时使用单引号。
这两种用法可以互换吗?如果没有,使用一个是否优于另一个?
当前回答
严格地说,意思没有区别;因此,选择归根结底是为了方便。
以下是可能影响您选择的几个因素:
房屋风格:一些开发商已经使用了一种或另一种惯例。客户端要求:您会在字符串中使用引号吗?(见Ady的回答。)服务器端语言:VB.NET人员可能会选择对JavaScript使用单引号,以便可以在服务器端构建脚本(VB.NET对字符串使用双引号,因此如果使用单引号则很容易区分JavaScript字符串)。库代码:如果您正在使用使用特定样式的库,您可以考虑自己使用相同的样式。个人喜好:你可能会觉得一种或另一种风格更好看。
其他回答
我不确定这在当今世界是否相关,但双引号过去用于需要处理控制字符的内容,而单引号用于不需要处理的字符串。
编译器将在双引号字符串上运行字符串操作,同时保持单引号字符串不受影响。这曾导致“优秀”的开发人员选择对不包含\n或\0等控制字符的字符串使用单引号(不在单引号内处理),而在需要解析字符串时使用双引号(处理字符串的CPU周期会有少许成本)。
可以使用单引号或双引号。
例如,这使您能够轻松地将JavaScript内容嵌套在HTML属性中,而无需转义引号。使用PHP创建JavaScript时也是如此。
总的想法是:如果可能的话,使用这样的引号,你不需要逃避。
更少的转义=更好的代码。
本规范第7.8.4节描述了文字字符串表示法。唯一的区别是DoubleStringCharacter是“SourceCharacter但不是双引号”,而SingleStringCharacter则是“SourceCharacter但不是单引号”。因此,唯一的区别可以证明如下:
'A string that\'s single quoted'
"A string that's double quoted"
因此,这取决于您要进行多少引号转义。显然,这同样适用于双引号字符串中的双引号。
从技术上讲,没有区别。这只是风格和惯例的问题。
Douglas Crockford1建议使用双引号。
我个人也这么认为。
我认为,如果您正在进行内联JavaScript(可以说是一件“糟糕”的事情,但要避免这种讨论),单引号是字符串文字的唯一选项。
例如,这很好:
<a onclick="alert('hi');">hi</a>
但是你不能通过我所知道的任何转义方法将“hi”用双引号括起来。甚至“;这可能是我最好的猜测(因为你在HTML属性值中转义引号)在Firefox中不适用。“也不起作用,因为此时您正在逃避HTML,而不是JavaScript。
因此,如果游戏的名称是一致的,并且你将在应用程序的某些部分中使用内联JavaScript,我认为单引号是赢家。如果我错了,请有人纠正我。