一、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')