2021年总结(es6)

一、set和Map区别

1. 增加元素

let set=new Set()
set.add([1,2,3,4,5,2]) 
console.log(set)//[1,2,3,4,5])

2. set长度

let set=new Set([1,2,3,4,5,2])
console.log(set.size)  //5

3.转为普通数组

let set=new Set([1,2,3,4,5,2])
[...set] 或者 Array.from(set)

4.删除某个值

	let set=new Set([1,2,3,4,5,2])
	set.delete(2)

5.是否包含

let set=new Set([1,2,3,4,5,2])
set.has(2)

6.所有元素

let set=new Set([1,2,3,4,5,2])
set.clear()

7. 作用

可以用作数组去重,基本原理等同于‘===’,与‘===’这个最大区别是认为‘NaN’是相等的

8.类似于‘weakSet’ 元素只能是对象

const ws = new WeakSet();
ws.add({obj:1})

9.map使用键值对

let m=new Map()
let o={p:'wdwdw'}
m.set(o,'content')

m.has(o)
m.get(o)
m.delete(o)

或者

let m=new Map([
	['name','张三'],
	['title',‘人’]
])
 m.size  //2
 m.has('titlle')  //true
 m.get('name')  //张三

二、promise

let promise=new Promise((resolve,reject)=>{
	if('返回成功'){
		resolve('‘结果’)
	}else{
		reject('失败')
	}
})
promise.then((value)=>{
	返回成功
},()=>{
	返回失败
})

对于多个请求promise做了封装

	let p1=new Promise((resolve,reject)=>{
		setTimeout({
			resolve(1)
		},2000)
	})
	let p2=new Promise((resolve,reject)=>{
		setTimeout({
			resolve(1)
		},2000)
	})
	Promise.all([p1,p2]).then(res=>{
		debugger
	}).catch(err=>{
		debugger//只要其中一個为错误的就走这一个
	})
	//只返回优先返回的数据  不管是在then还是catch
	Promise.race([p1,p2]).then(res=>{
		debugger
	}).catch(err=>{
		debugger//只要其中一個为错误的就走这一个
	})


三、async

async fun(){
	let a=awiat promisefun()
}
function promisefun(){
	return new Pormise((resolv,reject)=>{
		resolve(data)
	})
}
fun()

四、class

class foo(){
	constructor(x,y){
		this.x=x
		this.y=y
	}
	tovvalue(){
		return this.x+this.y
	}
}
let foofun=new foo(1,2)
foofun.tovvalue() //3

解析:
	class foo(){} 其实等同于 function fooes5(){}
	区别在于 es5中对象的__proto__指向的原型中定义的方法放在了class里面进行处理 
	但是 foo.prototype.constructor===fooes5.constroctor    
	foo.prototype===fooes5.__proto__
	如下图可做参考

在这里插入图片描述

五、export 、export default 、import 、require

第一种方式

index.js文件
var obj={
	name:'张三'
}
function foo(){
	return 12312
}
export {foo,obj}
或者
export var obj={
	name:'张三'
}
export function foo(){
	return 12312
}


**引入**
import {obj,foo} from 'index.js'
var a=require('index.js')

第二种方式

index.js文件
var obj={
	name:'张三',
	foo(){
			return 12312
	}
}

export default obj


**引入**
impor aa from 'index.js'
var a=require('index.js')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值