1. 程式人生 > >js物件屬性 通過點(.) 和 方括號([]) 的不同之處

js物件屬性 通過點(.) 和 方括號([]) 的不同之處

js可以通過點(.) 或 方括號([]) 運算子來獲取屬性的值,運算子左側應當是一個表示式,它返回一個物件。對於點(.)來說,右側必須是一個以屬性名稱命名的簡單識別符號。對於方括號([])來說,方括號裡必須是一個計算結果為字串的表示式,這個字串就是屬性的名字

當通過點運算子(.)方法物件屬性時,屬性名用一個識別符號來表示。識別符號必須直接出現再js程式中,它們不是資料型別,因此程式無法修改它們。
反過來講,當通過[]來方式物件的屬性時,屬性名通過字串表示。字串是js的資料型別,再程式執行時可以修改和建立它們。

區別:

   1:中括號運算子總是能代替點運算子。但點運算子卻不一定能全部代替中括號運算子。

   2: 中括號運算子可以用字串變數的內容作為屬性名。點運算子不能。 
       (即:點號後加識別符號(靜態的); 
         中括號可放字串,字串可以是動態的,obj[‘string’+variable])

   3:中括號運算子可以用純數字為屬性名。點運算子不能。

   4:中括號運算子可以用js的關鍵字和保留字作為屬性名。點運算子不能。