關於JSON作爲Object Literal Notation的一個子集,在這裏有一些關於stackoverflow的問題。但我找不到我的具體問題的答案。對象聲明:字符串作爲關鍵字會有所作爲嗎?
有
var obj = {keyName : "value"};
和
var obj = {"keyName" : "value"};
在JavaScript
之間有什麼區別?
關於JSON作爲Object Literal Notation的一個子集,在這裏有一些關於stackoverflow的問題。但我找不到我的具體問題的答案。對象聲明:字符串作爲關鍵字會有所作爲嗎?
有
var obj = {keyName : "value"};
和
var obj = {"keyName" : "value"};
在JavaScript
之間有什麼區別?
是的。不同之處在於後者的文件大小要比代碼中兩個額外的"
字符大兩個字節。
否則不,您提供的兩個示例對象之間沒有區別。
var obj = {keyName : "value"};
obj.keyName; /* "value" */
obj["keyName"]; /* "value" */
var obj = {"keyName" : "value"};
obj.keyName; /* "value" */
obj["keyName"]; /* "value" */
沒有區別,不同之處在於:第二個將增加在代碼中兩個額外的"
字符,這將花費你兩個額外的字節。
其原因兩種聲明對象屬性with or without quotes is because
你可以試試的,
var obj = {"key Name" : "value"};
,並仍然可以訪問它作爲
obj['key Name']
但不是
var obj = {key Name : "value"};
思考這個方式,有差別
OP的問題詢問'keyName'和''keyName「',而不是'key name'和''key Name」'是否有區別。 – 2014-09-24 13:07:42
雖然解釋了我需要解釋爲什麼使用這兩種符號有什麼不同。無論如何,謝謝我正在編輯答案。 – 2014-09-24 13:11:00
它不是「字符串作爲鍵」。鍵總是字符串。是否引用他們是一個符號問題。一個更好的標題將是「是否引用密鑰有所作爲?」 – 2014-09-25 15:34:12