举例:浏览器
var obj = new Object(); obj["home addr"]="Tianjin"; obj["!@#$%"]="!@#$%"; obj[""]="empty string"; obj[" "]="string contains only space";
在控制台中查看以下:spa
纯数字属性名的使用比较特殊,能够经过对象字面量和obj[number]的形式为对象添加纯数字属性,解释器会自动将数字转换为数字字符串。code
定义实例:对象
var obj = {1:"first"} obj[2]="second"; obj["3"]="third";
以上三种为对象添加纯数字属性的方法是等效的,控制台查看以下:blog
读取的方式有两种:字符串
须要注意,采用obj.number的方式读取纯数字属性名称时浏览器会报错,以下string
布尔属性名和纯数字属性名有着类似的行为,以下class
采用obj[propertyName]的形式读取或建立对象属性时,解释器首先会检查propertyName是值类型字面量仍是用户定义的变量,若是propertyName是值类型的字面量,则解释器自动将其转换为字符串后再读取或建立属性,如obj[1],obj[true]会被转换成obj["1"]、obj["true"].变量
若是propertyName是变量名称(或者是表达式),则解释器会读取变量内容(或对表达式求值),若是变量的值是字符串,则直接读取属性,若是是其余类型的数据,则转换为字符串后再读取属性。举例以下:方法
定义对象:
定义变量:
读取属性:
更特殊的,为obj添加undefined属性:
使用未初始化的变量c读取obj的undefined属性:
因为c没有初始化,因此将c转换为字符串的结果是“undefined”,而obj存在“undefined”属性。