和 " " 以及没有引号在 Javascript 中是啥意思?

Posted

技术标签:

【中文标题】' ' 和 " " 以及没有引号在 Javascript 中是啥意思?【英文标题】:What does ' ', and " ", and no quotes mean in Javascript?' ' 和 " " 以及没有引号在 Javascript 中是什么意思? 【发布时间】:2012-06-06 20:03:09 【问题描述】:

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

【问题讨论】:

你能举个具体的例子吗? 字符串可以使用""'',没关系(选择让您需要较少转义的那个("Mr. O'Neil"'I said "hi"')。数字不需要引用,例如12. 【参考方案1】:

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

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

例子:

"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

【讨论】:

最后两个不会真正被视为标识符,不是吗?在我看来,它们是各自类型(数字和正则表达式)的文字语法,就像前两个字符串示例一样。 @amnotiam 你提出了一个有效的观点;我已将它们重新分类为文字 :) 谢谢! 啊,到了。 +1 只有在 stuff without quotes 类别下的其他东西(我能想到的)是运算符和语句终止符......如果你想计算的话,我想是空格。 @amnotiam hehe 非常正确,但我认为现在必须这样做,除非 OP 想要完整的语言分解;-) 是的,你已经涵盖了 OP 的要求,等等。【参考方案2】:

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

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"';

【讨论】:

【参考方案3】:

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

myObject["property"]myObject.property 也可以互换。 $var foo = "property"; myObject[foo] 也是如此(根据下面的评论)。

【讨论】:

myObject[property] 获取以property的值命名的myObject的属性【参考方案4】:

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

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

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

【讨论】:

以上是关于 和 " " 以及没有引号在 Javascript 中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Shell sed 如何替换单引号,回车符,以及分号

JSON Key 用双引号 "" 和根本没有双引号有啥区别? [复制]

shell中$后加引号有什么用($"string"和$'string')

shell中$后加引号有什么用($"string"和$'string')

vb中引号和双引号的使用

js怎样取出字符串没有双引号的字符