Set:集合;Map:字典; -> ES6新数据存储结构,babel无法进行“语法降级”,因此其的兼容性不好;
Set、Map都是构造函数,Set存储结构是集合,Map存储结构称为字典(底层实现:链表、Hash算法、桶 => 利用hash算法固定位置,邻接链表产生联系,最终存储的地方称之为桶[大多为数组],整个结构为“字典”,查询速度更快);
1、Set -> 创建的对象中只有属性值,没有属性名,而且不重复(实际这是集合的特点:无重复性)
- - ->>> 基础使用(初始化、API[原型链查看即可])、去重、转换为数组、并集、交集、差集;
2、Map -> 创建的对象是“键值对”的集合,任何值都可当属性(并非只能是字符串)、去重(属性名相同,属性值不同不会去重 -> 存储数据"同名的人很多哈");
[对象属性名必须是字符串,若不写入字符串形式,其会隐式调用toString(); 类数组中的索引属性也是字符串形式,obj[];括号内必须为字符串形式;开发中往往对象属性名引号进行省略,但json数据的引号是不可省略的;Map数据结构中属性名可以是任意数据类型 ]
- - ->>> 原理实现:链表、hash算法、桶;// hash算法把不定范围的值转化为固定范围的值
Map底层实现:
链接链表:不同对象产生联系 -> next连接;
hash算法:将属性转换为特定范围的值,存储在特定的“区块”;
桶:存储
网友评论