挖坑慢慢填 ,有不合理或者错误的地方欢迎小伙伴雅正
要说标题中的四种数据类型,先从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) | - |