2010-12-23 40 views
2
<button onClick="function("parameter")">Click</button> 
<button onClick="function('parameter')">Click</button> 

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

'和「的區別是有區別是什麼在JavaScript

+2

您的代碼將無法正常工作。如果使用```分隔`onClick`字符串,那麼你應該使用```來分隔參數字符串,反之亦然。代碼突出顯示給你一個線索。 – nico 2010-12-23 16:08:09

+0

[單引號和雙引號之間的差異在Javascript中](http://stackoverflow.com/questions/3149192/difference-between-single-quotes-and-double-quotes-in-javascript) – user113716 2010-12-23 16:26:55

回答

4

不可以。它們可以通過設計互換。

唯一的要求是您需要匹配對(使用"',但不能同時表示字符串)。

字符串字面量見spec

StringLiteral: 
      " StringCharactersDQopt " 
      ' StringCharactersSQopt ' 

當內使用HTML,你必須要小心,不要使用HTML相同的分隔符屬性與JavaScript的那些(這就是爲什麼你的第一個例子是不法律)。

要正常運行,你需要將其更改爲:

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

沒有區別'"可互換現在你不能有一個這樣的字符串:。var my_var = 'hello world"; 。打開和關閉引號必須匹配這並不能讓你輕鬆做:var my_variable = 'John says "I love JavaScript."',而無需任何逃逸

所以這個:<button onClick="function("parameter")">Click</button>不會工作,因爲你已經打開並提前關閉了onclick事件"function("

+0

即使在例子一嗎?HTML不能識別它onClick = 「函數(」? – DarkLightA 2010-12-23 16:07:17

+2

我不能說凱文,但看起來像一個錯字。你的問題是「JavaScript和JavaScript之間有什麼區別?」,而不是「語法錯誤在哪裏?」 – 2010-12-23 16:08:19

+0

他們`````````'`````````````` (當然,反之亦然)。 – 2010-12-23 16:08:47

2

是的,有區別,當你用HTML像你這樣混吧:因爲你需要躲避的第一個片段將拋出一個異常雙引號,而第二個將工作(這就是爲什麼你應該避免與JavaScript混合標記的原因之一)。在純JavaScript(單獨的文件)中沒有區別。

0

這是一樣的。對於有「和」的唯一原因是,你不能嵌套的,例如,在給定的onClick例如 - >

onClick=" and there you need to use ' to encapsulate string " 
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腳本是常見

0

的。只有時間有差別(我知道of)在JSON中:在鍵和值周圍需要雙引號。

是的,每個人都是對的;你的第一行應該是這樣的,否則將引發錯誤:

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

我寧願是隻使用雙引號(如果可能的話),因爲我已經習慣到C一樣的語言(C,C++,C#),其中字符串只能用雙引號包裝。 (單引號被使用,但包裹字符型)

要回答這個問題本身:同樣喜歡所有的人說,沒有真正的區別 - 猜它的存在是爲了支持情況下,當你與HTML混合的JavaScript。