ES6学习总结是自己在学习过程中的总结,记笔记就是为了督促自己学习和复习,好记性不如烂笔头。如果有错误,感谢指出。
set数据结构
set数据类型的元素必须是唯一的,如果加入了重复的不会成功添加;可以做去重;
方式1
{
let list = new Set();
list.add(5);
list.add(7);
console.log('size',list.size);
}
方式2
{
let arr = [1,2,3,4,5];
let list = new Set(arr);
console.log('size',list.size);
}
不会做数据类型的转换
{
let list = new Set();
list.add(1);
list.add(2);
list.add(1);//不会报错 只是不会生效
console.log('list',list);
let arr=[1,2,3,1,'2'];
let list2=new Set(arr);
console.log('unique',list2);
}
set的几个方法:add clear delete has
{
let arr=['add','delete','clear','has'];
let list=new Set(arr);
console.log('has',list.has('add'));//是否包含
console.log('delete',list.delete('add'),list);//清空
list.clear();
console.log('list',list);
}
set遍历:keys和values返回的都是set里面的值
{
let arr=['add','delete','clear','has'];
let list=new Set(arr);
for(let key of list.keys()){
console.log('keys',key);
}
for(let value of list.values()){
console.log('value',value);
}
for(let [key,value] of list.entries()){
console.log('entries',key,value);
}
list.forEach(function(item){console.log(item);})
}
Weakset用法
- 与set非常像,但其支持的数据类型不同,weakset支持的只能是对象,否则报错;
- weakset是弱引用,只有地址引用,不会检测对象是否在其他地方用过,意味着不会和垃圾回收机制挂钩;
- weakset没有size方法,不能遍历。
- add clear delete has用法一致
{
let weakList=new WeakSet();
let arg={};
weakList.add(arg);
// weakList.add(2);
console.log('weakList',weakList);
}
Map用法
set添加元素用add,map添加元素用set,易混淆
map的key可以是任何数据类型。
方式1:
{
let map = new Map();
let arr=['123'];
map.set(arr,456);
console.log('map',map,map.get(arr));
}
方式2:
{
let map = new Map([['a',123],['b',456]]);
console.log('map args',map);
}
map的几个方法:size set clear delete get
{
console.log('size',map.size);
console.log('delete',map.delete('a'),map);
console.log('clear',map.clear(),map);
}
Map遍历
同set
WeakMap用法
key必须是对象,没有size,不能用clear,不能遍历
{
let weakmap=new WeakMap();
let o={};
weakmap.set(o,123);
console.log(weakmap.get(o));
}