是什麼這個Javascript對象/關聯數組的這兩個符號有什麼區別?
var person = {
name: "Bob",
age: "99"
};
,這有什麼區別?
var person = {
"name": "Bob",
"age": "99"
};
或者他們的意思是一樣的嗎?如果他們這樣做,如果我想讓鑰匙成爲一個對象呢?如果name
表示"name"
,我將如何指定對象作爲關鍵字?
是什麼這個Javascript對象/關聯數組的這兩個符號有什麼區別?
var person = {
name: "Bob",
age: "99"
};
,這有什麼區別?
var person = {
"name": "Bob",
"age": "99"
};
或者他們的意思是一樣的嗎?如果他們這樣做,如果我想讓鑰匙成爲一個對象呢?如果name
表示"name"
,我將如何指定對象作爲關鍵字?
沒有區別。只有當您想使用字符串作爲屬性名稱時,引號纔是必需的,但該字符串不是有效的標識符。此外,
對象屬性名稱可以是任何有效的JavaScript字符串或任何可以轉換爲字符串的字符串,包括空字符串。但是,只能使用方括號表示法訪問任何不是有效JavaScript標識符的屬性名稱(例如,具有空格或破折號的屬性名稱,或以數字開頭)。
另一個很好的鏈接,我找到有用的解釋。 [鏈接](http://mathiasbynens.be/notes/javascript-properties) –
確實。 Mathias知道他的東西。 –
並且在大多數瀏覽器中,如果屬性名稱是關鍵字,則必須使用引號 – Alnitak
它們的意思是一樣的。有效的鍵是標識符,字符串文字或數字文字。請參閱http://ecma-international.org/ecma-262/5.1/#sec-11.1.5
您現在還不能將對象本身用作鍵,但是爲EcmaScript 6提供的WeakMap對象將解決此問題。請參閱https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap
對象不能是關鍵。對象可以是一個值。 – ElmoVanKielmo
@ElmoVanKielmo該聲明既含糊又有誤導性。 _string_'「object」'是一個完全有效的屬性名稱。 –
[對象鍵與引號和沒有引號之間的區別是什麼?](http://stackoverflow.com/questions/4348478/what-is-the-difference-between-object-keys-with-quotes-和無引號) – Bergi