[轉]js對象中取屬性值(.)和[ ]的區別

原文地址: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   [ ]運算符能夠用純數字做爲屬性名,點運算符不能

總結:對於通常的常量就使用(.)運算符,對於其餘的使用[ ]運算符。

相關文章
相關標籤/搜索