ES6基础总结(下)

Set

       初始化: Set类似于数组,但是成员的值都是唯一的,没有重复的值,用来生成set数据解构展。Set构造函数可以接受一个数组(或者具有iterable接口的其他数据结构)作为参数,用来初始化。

var set =new Set();

        //Set API

Set.prototype.size        返回Set实例的成员总数

Set.prototype.add(value)        添加某个值,返回Set结构本身

Set.prototype.delete(value)        删除某个值,返回一个布尔值,表示删除是否成功

Set.prototype.has(value)        返回一个布尔值,表示该值是否为Set的成员。

Set.prototype.clear()    清除所有成员,没有返回值。
Set.prototype.keys()    返回键名的遍历器
Set.prototype.values()    返回键值的遍历器
Set.prototype.entries()    返回键值对的遍历器
Set.prototype.forEach()    使用回调函数遍历每个成员

var set = new Set([1,2,3,4,5,6]);

//添加
set.add('hello','world');
//删除
//set.delete('world');
//查询长度
console.log(set.size);
//清空
//set.clear()

console.log(set.has('hello'));
console.log(set.keys());
console.log(set);
//遍历
set.forEach((item) => {
    console.log(item);
})

 Map

        初始化:Map类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。Map 可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。

var map = new Map([ ['name', '张三'], ['title', 'Author'] ]);

//Map API

Set.prototype.size    返回 Map 结构的成员总数。
Set.prototype.set(key, value)    set方法设置键名key对应的键值为value,然后返回整个map结构。如果key已经有值,则键值会被更新,否则就新生成该键。
Set.prototype.get(key)    get方法读取key对应的键值,如果找不到key,返回undefined。
Set.prototype.has(key)    has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。
Set.prototype.delete(key)delete方法删除某个键,返回true。如果删除失败,返回false。
Set.prototype.clear()    清除所有成员,没有返回值
Set.prototype.keys()    返回键名的遍历器
Set.prototype.values()    返回键值的遍历器
Set.prototype.entries()    返回键值对的遍历器
Set.prototype.forEach()    使用回调函数遍历每个成员

let obj = {
name:'zhangsan',
age:'12',
gender:'boss'

}
let entry = Object.entries(obj);
console.log(entry);
let map = new Map(entry)
map.set({username:'admin1'},[1,2,3])
console.log(map);
console.log(map.get('name'));
console.log(map.has('name'));
console.log(map.keys());
console.log(map.values());
console.log(map.entries());
map.forEach((value,key) => {
    console.log(key+':'+value);
})

Iterator(迭代器)

解释:

        它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)
        Iterator 的作用有三个:一是为各种数据结构,提供一个统一的、简便的访问接口;二是使得数据结构的成员能够按某种次序排列;三是ES6创造了一种新的遍历命令for...of循环,Iterator接口主要供for...of消费。
Iterator 的遍历过程是这样的。
1. 创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。
2. 第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。
3. 第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。
4. 不断调用指针对象的next方法,直到它指向数据结构的结束位置。

迭代器实现:

Iterator 接口的目的,就是为所有数据结构,提供了一种统一的访问机制,即for...of循环(详见下文)。当使用for...of循环遍历某种数据结构时,该循环会自动去寻找 Iterator 接口。一种数据结构只要部署了 Iterator 接口,我们就称这种数据结构是“可遍历的”(iterable)。可以通过如下方法访问Iterator对象

var iterator = iterObj[Symbol.iterator]();

原生具备 Iterator 接口的数据结构如下:
Array、Map、Set、String、TypedArray、arguments、NodeList 等

箭头函数:

//箭头函数里面没有自己的this,而是引用外层的this。
var f = v => v;
等价于
var f = function(v) { 
	return v; 
};

函数参数:

ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。通常情况下,定义了默认值的参数,应该是函数的尾参数,函数的length属性,将返回没有指定默认值的参数个数

function log(x, y = 'World') {
    console.log(x, y);
}

参数默认值可以与解构赋值的默认值,结合起来使用。

function foo({x, y = 5}) {
    console.log(x, y);
}


ES6 引入 rest 参数(形式为...变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。

function add(...values) {}
add(2, 5, 3)

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值