set、map与模块化
------------恢复内容开始------------
Set 和 WeakSet用法
(Set本身是一个构造函数)必须穿一个数组
例子var s = new Set();
add()添加
size属性:获取成员的个数。
delete( )方法:用户删除Set结构中的指定值 返回值为true false
clear( )方法:清除所有成员。
has( )方法:判断set结构中是否含有指定的值。返回值为true false
entries( )方法:返回一个键值对的遍历器。
keys( )方法:返回键名的遍历器。
values( )方法:返回键值的遍历器。 属性与属性值一样
forEach( )方法:遍历每一个成员。
set去重
let arr = [1,2,2,3,4,4,4];
let s = new Set(arr);
let newArr = Array.from(s);
WeakSet结构
WeakSet结构同样不会存储重复的值,不同的是,它的成员必须是对象类型的值。
let ws = new WeakSet([{"age":18}]);
add( ) 方法,
delete( ) 方法,
has( )方法
WeakSet 结构不可遍历。
因为它的成员都是对象的弱引用,随时被回收机制回收,成员消失。
所以WeakSet 结构不会有keys( ),values( ),entries( ),forEach( )等方法和size属性。
Map和WeakMap用法
例子 let m = new Map();
字符串,数字,null,undefined,布尔类型 属性值类型都可以
let m = new Map([
["name","前端君"],
["gender",1]
]);
console.log(m);
set( )方法作用:给实例设置一对键值对,返回map实例。
例子
m.set("name","前端君"); 名字一样会覆盖
get( )方法作用:获取指定键名的键值,返回键值。
m.get("name");//结果:前端君
delete( )方法作用:删除指定的键值对,删除成功返回:true,否则返回:false。
clear( )方法
has( )方法;判断Map实例内是否含有指定的键值对,有就返回:true,否则返回:false。
entries( )方法作用:返回实例的键值对遍历器。
keys( )方法:返回实例所有键名的遍历器。
values( ) 方法:返回实例所有键值的遍历器。
size属性
forEach方法
ES6的Promise对象
解决了回调地域 回调函数层层嵌套(的问题
Promise基本用法
Promise的三种状态
1.pending:刚刚创建一个Promise实例的时候,表示初始状态;
2.fulfilled:resolve方法调用的时候,表示操作成功;
3.rejected:reject方法调用的时候,表示操作失败;
状态只能从 初始化 -> 成功 或者 初始化 -> 失败,不能逆向转换,也不能在成功fulfilled 和失败rejected之间转换
catch只接受一个参数,用于处理操作异常后的业务。
then( )方法:用于绑定处理操作后的处理程序。
Async/await的应用
async用于申明一个function是异步的,返回一个promise对象
async必须声明的是一个function,await必须在声明的函数内部使用。
await是强制把异步变成了同步
Promise.race()有一个状态发生变化(不管是成功fulfilled还是异常rejected),它就会有返回
Promise.all( )方法:参数中状态都为fulfilled时,Promise.all( )才会有返回。
模块化的实现
导出Export:作为一个模块,它可以选择性地给其他模块暴露(提供)自己的属性和方法,供其他模块使用。
导入Import:作为一个模块,可以根据需要,引入其他模块的提供的属性或者方法,供自己模块使用。
------------恢复内容结束------------