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


原文地址:https://www.jianshu.com/p/6a76530e4f8f

今天在寫js的過程中遇到這么一個問題,取一個對象的屬性值,通過obj.keys怎么都取不出來,但是用obj[keys]就可以。(這個是模擬的數據)

 

后來通過查資料明白,我這里data.water輸出undefined,是因為object使用(.)獲取屬性值時,這里的water不是使用的變量water,而是直接去data對象中尋找名為water的key,沒有找到,所以報undefined。 

區別:

相同點:都可以獲取到obj的屬性值

不同點:

     1 [ ]運算符可以使用字符串變量的內容作為屬性名,點運算符不能

     2 [ ]運算符可以用純數字作為屬性名,點運算符不能

    3 [ ]運算符可以用js關鍵字和保留字作為屬性名,點運算符不能

eg:

1 [ ]運算符可以使用字符串變量的內容作為屬性名,點運算符不能

 

    這里由於變量的var聲明的變量會導致變量提升,所以會報undefined

2   [ ]運算符可以用純數字作為屬性名,點運算符不能

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM