es6的一些小技巧

一、非空的判断(空值合并运算符)

if((value??'') !== ''){
  //...
}
//像我们平常使用的是这样,但是这样会把0也过滤掉
//if(!value){
// //...
//}

二、数据合并(扩展运算符)

1.数组合并以及去重

const a = [1,2,3];
const b = [1,5,6];
const c = [...new Set([...a,...b])];//[1,2,3,5,6]

2.对象合并

const obj1 = {
  a:1,
}
const obj2 = {
  b:1,
}
const obj = {...obj1,...obj2};//{a:1,b:1}

三、拼接字符串(模板字符串)

const name='小江'
const age=18
cosnt result=`${name}${age>18?'成年':'未成年'}`

四、if的判断条件(数组实例方法includes的使用)

const list= [1,2,3,4];
if( list.includes(type) ){
   //...
}

五、扁平化数组(flat)

const deps = {
  a:[1,2,3],
  b:[5,8,12],
  c:[5,14,79],
  d:[3,64,105],
}
//Object.values获取对象的全部属性
//Infinity作为flat的参数,使得无需知道被扁平化的数组的维度
let member = Object.values(deps).flat(Infinity);

六、异步函数的处理

const fn=()=>{
  //存在继发关系的
  const res1 = await fn1();
  const res2 = await fn2(res1);
  //不存在继发关系的 即互不依赖
  const res1 = await fn1();
  const res2 = await fn2();
}
//做并发请求,还是用Promise.all()
const fn = () =>{
   Promise.all([fn1(),fn2()]).then(res =>{
       console.log(res);// [1,2]
   }) 
}

七、可选链操作符

const name = obj?.name;

八、添加对象属性

let obj = {};
let index = 1;
obj[`topic${index}`] = '话题内容';

九、过滤(find)

如果是精确搜索使用find在数组中找到符合条件的项就不会再继续遍历数组,可以提高性能
如果查找多条数据的话还是用filter

const a = [1,2,3,4,5];
const result = a.find(item=>item===3)

十、取值技巧(解构赋值)

解构的对象不能为undefined、null,要设置默认值

const obj ={
  a:1,
  b:2,
  c:3
}
const {a:mya,b:myb,c:myc}=obj || {}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值