先說解決辦法:
通過a[key]的方式獲取。
具體場景是這樣的:
有一個對象的key是數字組成的,這時候使用a.b的形式就不能獲取到相應的value值,
如下圖:
a.'111'會報錯。

特別說明:
a['111']和a[111]兩種寫法都是一樣的,沒有什么區別,此用法與數組用下標訪問是相同的。
請注意,如果使用方括號運算符,鍵名不為數值的時候,必須放在引號里面,否則會被當作變量處理。但是,數字鍵可以不加引號,因為會被當作字符串處理。
另:
當對象的key為一個變量時,並且使用在循環中,那我們可以通過data['key']這種方式來動態生成對象,eg:

總結:
1.對象的key一般應使用合法的變量名(字母或下划線開頭的包括字母、下划線和數字的字符串) ,這種情況下通過a.key 或者 a['key']的方式都可以獲取到相應的value值。
2.當特殊場景key為數字的情況下,只能通過a['key']的方式來獲取相應的value值。
如當建立一個與數據庫中id一一對應的map對象的時候,
可直接用id的數值做key,雖然你可以給它加上一個字母前綴來讓它符合合法的變量名的標准,
並讓它的數據能通過data.key的方式訪問,
但如果數據量非常大的話,
為每個id都加一個前綴,+字符連接運算也是要消耗性能的,
特別是在很少需要采用data.key方式去訪問屬性的情況下,
那么可以拋棄此調用方式,直接用數字做key也未嘗不可,
除了key名稱不符合合法變量名的標准之外,似乎並沒有其它損失;
