我意识到我一直在他们之间切换而不理解为什么,并且发现很难搜索。
答案 0 :(得分: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
答案 1 :(得分:6)
' '
和" "
用于引用字符串文字并表示字符串(s)而不带引号的文字是变量(变量名称,常量),称为标识符,示例
variable = 'Hello'; (Here `variable` is identifier and 'Hello' is string literal)
var = "Ho There"
您可能会质疑' (single quote)
和" (Double quote)
区别在于,"
中的字符串如果具有特殊字符,则需要转义。示例:
变量=“hi”那里“; ---&gt;这里你需要转义"
里面的字符串
Variable = "hi \" there";
但是如果使用'
则不需要转义(除非字符串中有额外的'
)。你可以像
var = 'Hello " World"';
答案 2 :(得分:5)
"
和'
可以互换(但需要一起使用)。
myObject["property"]
和myObject.property
也可以互换。 $var foo = "property"; myObject[foo]
也是如此(以下评论)。
答案 3 :(得分:0)
快速的jsfiddle和单引号和双引号转义控制代码等。
在后来的几天里,我遇到了HTML中没有使用双引号的错误,如果你查看JSON的规范,你会注意到引用字符串文字时会引用双引号。因此,出于历史原因,我认为它是双引号。
然而!在编写服务器端JS的这些日子里,我必须承认我倾向于回到我的C根和双引号,我想要转义字符和单引号字符串,这些字符串实际上是文字字符,并且永远不可能包含转义字符(即使这是基本上是非生产性行为)。除此之外,我现在的大多数JS都是coffeescript,没有人为了优雅而写过javascript,但CS是不同的水壶。