7

我意识到我一直在它们之间切换,不知道为什么,并且发现很难搜索。

4

4 回答 4

16

' '" "是同一个东西;它们用于定义字符串文字。

不带引号的东西可以是标识符、关键字、非字符串文字、属性名称或数字(可能遗漏了一个)。

例子:

"hello world"        literal (string)
'hello world'        literal (string) with same contents
document             identifier (object)
{ a: 1 }             property name
if                   keyword (start conditional statement)
3.4                  literal (number)
/abc/                literal (regex object)

用单引号括起来的字符串文字不需要转义双引号,反之亦然,例如:

'<a href="">click me</a>'    HTML containing double quotes
"It's going to rain"         String containing single quote
于 2012-06-01T15:01:04.423 回答
6

' '" "用于引用字符串文字并表示字符串,而没有引号的文字是变量(变量名称,常量),称为标识符,例如

variable = 'Hello'; (Here `variable` is identifier and 'Hello' is string literal)


var = "Ho There"

' (single quote)你可能会问,和之间有什么区别" (Double quote)

不同之处在于,"如果其中的字符串具有特殊字符,则它们需要转义。例子:

Variable = "hi " there"; ---> 在这里你需要转义"里面的字符串,比如

Variable = "hi \" there"; 

但是如果使用,'则不需要转义(除非'字符串中有额外的)。你可以喜欢

var = 'Hello " World"';
于 2012-06-01T15:05:51.020 回答
5

"并且'可以互换(但需要一起使用)。

myObject["property"]并且myObject.property可以互换。 $var foo = "property"; myObject[foo]以及(根据下面的评论)。

于 2012-06-01T15:02:38.340 回答
0

一个快速的 jsfiddle 以及单引号和双引号转义控制代码等。

在最近的日子里,我遇到了来自 HTML 的错误,其中没有使用双引号,如果你查看JSON的规范,你会注意到它是在引用字符串文字时要求的双引号。因此,出于历史原因,我认为双引号是惯例。

然而!在编写服务器端 JS 的这些日子里,我必须承认我倾向于回到我的 C 根和双引号,我想要转义字符和单引号字符串,它们实际上是文字字符并且永远不可能包含转义字符(即使这是本质上是非生产性行为)。除了现在我的大部分 JS 都是coffeescript,没有人为了优雅而写过 javascript,尽管 CS 是一个不同的鱼壶。

于 2012-12-18T12:30:51.223 回答