JavaScript 具有特殊字符或保留字的属性

示例

虽然对象属性符号通常表示为myObject.property,但这将只允许通常在JavaScript变量名称中找到的字符,主要是字母,数字和下划线(_)。

如果需要特殊字符,例如空格、,或用户提供的内容,则可以使用方[]括号表示法。

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

全数字属性:

除特殊字符外,全数字的属性名称还需要使用括号表示。但是,在这种情况下,该属性不必写为字符串。

myObject[123] = 'hi!' // 数字123自动转换为字符串
console.log(myObject['123']) // 注意如何使用字符串123产生相同的结果
console.log(myObject['12' + '3']) // 字符串串联
console.log(myObject[120 + 3]) // 算术,仍然得出123并产生相同的结果
console.log(myObject[123.0]) // 这也是可行的,因为123.0评估为123
console.log(myObject['123.0']) // 这不起作用,因为'123'!='123.0'

但是,不建议使用前导零,因为这被解释为八进制表示法。(TODO,我们应该产生并链接到描述八进制,十六进制和指数符号的示例)

另请参见:[数组是对象]示例。