帶有特殊字元或保留字的屬性

雖然物件屬性表示法通常寫為 myObject.property,但這隻允許通常在 JavaScript 變數名中找到的字元,主要是字母,數字和下劃線(_)。

如果你需要特殊字元,例如空格,☺或使用者提供的內容,則可以使用 [] 括號表示法。

myObject['special property ☺'] = 'it works!'
console.log(myObject['special property ☺'])

全數字屬性:

除特殊字元外,全數字的屬性名稱還需要括號表示法。但是,在這種情況下,不需要將屬性寫為字串。

myObject[123] = 'hi!' // number 123 is automatically converted to a string
console.log(myObject['123']) // notice how using string 123 produced the same result
console.log(myObject['12' + '3']) // string concatenation
console.log(myObject[120 + 3]) // arithmetic, still resulting in 123 and producing the same result
console.log(myObject[123.0]) // this works too because 123.0 evaluates to 123
console.log(myObject['123.0']) // this does NOT work, because '123' != '123.0'

但是,不建議使用前導零,因為它被解釋為八進位制表示法。 (TODO,我們應該生成並連結到描述八進位制,十六進位制和指數表示法的示例)

另請參見:[Arrays are Objects]示例。