原文地址:https://www.jianshu.com/p/6a76530e4f8f3d
今天在寫js的過程當中遇到這麼一個問題,取一個對象的屬性值,經過obj.keys怎麼都取不出來,可是用obj[keys]就能夠。(這個是模擬的數據)orm
後來經過查資料明白,我這裏data.water輸出undefined,是由於object使用(.)獲取屬性值時,這裏的water不是使用的變量water,而是直接去data對象中尋找名爲water的key,沒有找到,因此報undefined。 對象
區別:字符串
相同點:均可以獲取到obj的屬性值io
不一樣點:form
1 [ ]運算符能夠使用字符串變量的內容做爲屬性名,點運算符不能class
2 [ ]運算符能夠用純數字做爲屬性名,點運算符不能變量
3 [ ]運算符能夠用js關鍵字和保留字做爲屬性名,點運算符不能object
eg:file
1 [ ]運算符能夠使用字符串變量的內容做爲屬性名,點運算符不能
這裏因爲變量的var聲明的變量會致使變量提高,因此會報undefined
2 [ ]運算符能夠用純數字做爲屬性名,點運算符不能
總結:對於通常的常量就使用(.)運算符,對於其餘的使用[ ]運算符。