JavaScript中“和”有什么区别?

时间:2010-12-23 16:05:13

标签: javascript

<button onClick="function("parameter")">Click</button>
<button onClick="function('parameter')">Click</button>

var variable = "value";
var variable = 'value';

有区别吗?

7 个答案:

答案 0 :(得分:4)

没有。它们可以通过设计互换。

唯一的要求是您需要匹配对(使用"',但不能同时使用两者来表示字符串。

请参阅spec了解字符串文字:

StringLiteral:
          " StringCharactersDQopt " 
          ' StringCharactersSQopt '

在HTML中使用时,您需要注意不要在HTML属性中使用与javascript相同的分隔符(这就是为什么您的第一个示例不合法)。

要正常运作,您需要将其更改为:

<button onClick='function("parameter")'>Click</button>

答案 1 :(得分:2)

是的,当你将它与HTML混合时会有所不同:第一个代码片段将引发异常,因为你需要转义双引号而第二个代码将起作用(这是你应该避免混合标记的原因之一)用javascript)。在纯JavaScript(单独的文件)中没有区别。

答案 2 :(得分:2)

两者是等效的,只要在字符串文字的开头和结尾都使用相同的一个。也就是说,选择正确的字符串可以避免不必要的字符串转义:

<button onClick="function(&quot;parameter&quot;)">Click</button> <!-- becomes -->
<button onClick="function('parameter')">Click</button>

var foo = "And the computer said: \"Hello, world!\""; // becomes
var foo = 'And the computer said: "Hello, world!"';

这在使用JavaScript生成HTML时具有明显的优势,这在使用jQuery的脚本中很常见。

答案 3 :(得分:1)

没有区别。 '"可以互换。现在你不能有这样的字符串:var my_var = 'hello world";开盘价和收盘价必须匹配。这使您可以轻松地执行:var my_variable = 'John says "I love JavaScript."'而无需转义任何内容。

因此:<button onClick="function("parameter")">Click</button>无效,因为您过早地打开并关闭了onclick事件"function("

答案 4 :(得分:0)

它是一样的。拥有'和'的唯一原因是,你无法嵌套它们,例如,在给定的onClick示例中 - &gt;

onClick=" and there you need to use ' to encapsulate string "

答案 5 :(得分:0)

唯一一次存在差异(我知道)是JSON:键和值周围需要双引号。

是的,每个人都是对的;你的第一行应该是这样读的,否则会引发错误:

<button onClick='function("parameter")'>Click</button>

答案 6 :(得分:0)

我更喜欢只使用双引号(如果可能的话),因为我习惯使用C语言(C,C ++,C#),其中字符串只能用双引号括起来。 (使用单引号,但要包装 char 类型)

回答问题本身:就像所有其他人所说的一样,没有真正的区别 - 猜测当你将JavaScript与HTML混合时,支持案例是存在的。