今天在寫js的過程中遇到這么一個問題,取一個對象的屬性值,通過obj.keys怎么都取不出來邻寿,但是用obj[keys]就可以。(這個是模擬的數(shù)據(jù))
后來通過查資料明白视哑,我這里data.water輸出undefined,是因為object使用(.)獲取屬性值時绣否,這里的water不是使用的變量water,而是直接去data對象中尋找名為water的key,沒有找到,所以報undefined挡毅。?
區(qū)別:
相同點:都可以獲取到obj的屬性值
不同點:
? ? ?1 [ ]運(yùn)算符可以使用字符串變量的內(nèi)容作為屬性名蒜撮,點運(yùn)算符不能
? ? ?2 [ ]運(yùn)算符可以用純數(shù)字作為屬性名,點運(yùn)算符不能
? ? 3 [ ]運(yùn)算符可以用js關(guān)鍵字和保留字作為屬性名跪呈,點運(yùn)算符不能
eg:
1?[ ]運(yùn)算符可以使用字符串變量的內(nèi)容作為屬性名段磨,點運(yùn)算符不能
? ? 這里由于變量的var聲明的變量會導(dǎo)致變量提升,所以會報undefined
2? ?[ ]運(yùn)算符可以用純數(shù)字作為屬性名庆械,點運(yùn)算符不能
總結(jié):對于一般的常量就使用(.)運(yùn)算符薇溃,對于其他的使用[ ]運(yùn)算符。