判断相等
NaN===NaN //false
Object.is(NaN,NaN)//true
assign 合并对象
let a = {a='lhd'}
let b = {b='李白'}
let c = Object.assign(a,b,c)
console.log(c)
Set
let setArr = new Set(['lhd','web','h5'])
setArr.add('cc')
console.log(setArr)
console.log(setArr.has('lhd'))//
setArr.clear()//
setArr.delete('lhd')//
for(let item of setArr){
console.log(item)
}
WeakSet
let weakObj = new WeakSet();
let obj = {name:'lhd'}
weakObj.add(obj)
map
let map = new Map();
let json = {name:'lhd'}
map.set('lhd',json)
map.get('lhd')
map.delete('lhd')
map.clear()
map.has('lhd')
proxy ES6 增强 对象,函数(代理 拦截 重处理)
let targe = {
add:function(val){
return val + 100
},
name:'I am LHD'
}
let handler = {
get:function(target,key,property){
console.log('iiii')
return target[]
},
set:function(target,key,val,receiver){
console.log(`setting ${key} = ${val}`)
return target[key] = val
},
apply(target,ctx,args){
console.log('do apply')
return Reflect.apply(...arguments)
}
}
let pro = new Proxy(target,handler)
console.log(pro.name)
promise 解决es5回调地狱
let state = 1;
function step1(resolve,reject){
if(state==1){
resolve('获取省成功')
state=2
}else{
reject('获取省错误')
}
}
function step2(resolve,reject){
if(state==2){
resolve('获取市成功')
state=3
}else{
reject('获取市出错')
}
}
function step3(resolve,reject){
if(state==3){
resolve('获取县成功')
}else{
reject('获取县出错')
}
}
new Promise(step1).then((val)=>{
console.log(val)
return new Promise(step2)
}).then((val)=>{
console.log(val)
return new Promise(step3)
}).then((val)=>{
console.log(val)
})
Class 类
class Coder{
constructor(a,b){
this.a = a;
this.b = b;
}
name(val){
console.log(val)
return val
}
skill(val){
console.log(this.name(val)+':'+'技能:'+val)
}
}
let obj = new Coder(1,2);
obj.name('lhd')
class htmler extends Coder{
}
let dd = new htmler(1,2);
dd.name('cc')