舉例:瀏覽器
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」屬性。