做爲前端小菜鳥,最近癡魔改代碼,常常會寫出一些比較騷的代碼想這樣javascript
let a = []
a.b = 10
a[1] = 20
a['b-c'] = 20
a['d'] = 20
a.push(8)
console.log(a) // [ <1 empty item>, 20, 8, b: 10, 'b-c': 20, d: 20 ]
複製代碼
說實話node控制檯打印出來的東西,仍是要比 chrome嚴謹一些,會把帶有操做符的屬性打上引號。 可是打出來這這串東西的長相的真的很神奇,我不知道這樣的一頓操做周,最終這個a的值到底仍是不是一個數組。php
因此很好奇,依照常識吧打印出來的值 初始化給a,惋惜失敗了,語法會報錯,這裏就讓我陷入了沉思, 這樣的值,只有經過蹂躪才能得到,而不能開始就被賦值。 這個對目前認知有些出入。前端
想知道在js中爲何會有這種操做,別的語言中會有嗎?小菜鳥表示十分疑惑,這讓我想起php在查詢mysql的時候 返回的字段 是能夠直接用 row[0] 已經row['id'] 來表示同一個值,難道也是這種操做嗎? 期待大神給本菜鳥解惑.java