挖坑逐步填 ,有不合理或許毛病的處所迎接小夥伴雅正
要說標題中的四種數據類型,先從js一切數據類型相識,JavaScript數據類型分兩種:
- 基礎數據類型(string / number / boolear / null / undefine)棧內存
- 引述數據類型(object / array / map / set / function / date / regexp)堆內存
object,array,map,set,這四種數據類型負擔了開闢中的險些一切龐雜數據的存取,(map,set為ES6新增加的數據類型),這裡會簡單明了的引見和對照這四種數據類型的重要特徵。
array vs
set
– | array | set | 備註 |
---|---|---|---|
有沒有索引 | 有 [1,1,2,2][0] => 1 | 無 new Set(1,1)[0] => undefine | 癥結區分 |
反覆元素 | 有 [1,1,2,2] | 無 [1,2] | set對象元素非同一援用也可[{},{}] |
組織 | new Array() [] Array.from() | new Set() | – |
推斷有否屬性 | includes() | has() | – |
增加屬性 | push() unshift() splice() | add() | – |
刪除屬性 | pop shift() splice() | delet() | – |
大小 | Array.lenght | Set.size | – |
object vs
map
– | object | map | 備註 |
---|---|---|---|
健(key) | string | 無限制 | 癥結區分 |
組織 | new Object() {} | new Map() new Map(Arrany<entry object>) | – |
取值 | . [] | get(key) | – |