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基本用法

let pro = new Promise(function (resolve, reject) {})

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:作为一个模块,它可以选择性地给其他模块暴露(提供)自己的属性和方法,供其他模块使用。

例子 export var name ="lisang"

导入Import:作为一个模块,可以根据需要,引入其他模块的提供的属性或者方法,供自己模块使用。

 例子 import { name } from "./导出";
console.log(name);
重命名导出的变量
import{name as myname }from"./导出"
console.log(myname);
整体导入
import* as obj from"./导出"
console.log(obj.name);
console.log(obj.age);
obj.say()
默认导入
import  sayDefault from "./导出"
sayDefault()
默认导出默认导出,每个模块支持我们导出一个没有名字的变量,我们使用关键语句
export default function(){
console.log("i am default Fn");
}
整体导出
export var name ="lisang"
var age =12;
var say=function(){
    console.log("kaonijiwa");
}

 

 

 

 

 

 

 

 

 

 

 

------------恢复内容结束------------

posted @ 2021-12-23 21:02  岑先森  阅读(38)  评论(0)    收藏  举报