2014-09-24 51 views
4

關於JSON作爲Object Literal Notation的一個子集,在這裏有一些關於stackoverflow的問題。但我找不到我的具體問題的答案。對象聲明:字符串作爲關鍵字會有所作爲嗎?

var obj = {keyName : "value"}; 

var obj = {"keyName" : "value"}; 
在JavaScript

之間有什麼區別?

+1

它不是「字符串作爲鍵」。鍵總是字符串。是否引用他們是一個符號問題。一個更好的標題將是「是否引用密鑰有所作爲?」 – 2014-09-25 15:34:12

回答

5

是的。不同之處在於後者的文件大小要比代碼中兩個額外的"字符大兩個字節。

否則不,您提供的兩個示例對象之間沒有區別。

var obj = {keyName : "value"}; 

obj.keyName;  /* "value" */ 
obj["keyName"]; /* "value" */ 
var obj = {"keyName" : "value"}; 

obj.keyName;  /* "value" */ 
obj["keyName"]; /* "value" */ 
5

沒有區別,不同之處在於:第二個將增加在代碼中兩個額外的"字符,這將花費你兩個額外的字節。

其原因兩種聲明對象屬性with or without quotes is because 你可以試試的,

var obj = {"key Name" : "value"}; 

,並仍然可以訪問它作爲

obj['key Name'] 

但不是

var obj = {key Name : "value"}; 

思考這個方式,有差別

+1

OP的問題詢問'keyName'和''keyName「',而不是'key name'和''key Name」'是否有區別。 – 2014-09-24 13:07:42

+4

雖然解釋了我需要解釋爲什麼使用這兩種符號有什麼不同。無論如何,謝謝我正在編輯答案。 – 2014-09-24 13:11:00

相關問題