js优化写法
判断对象有值赋值
let _is_obj_null = ( Object.key(obj) || [] ).length ? obj : {}
优化if判断
let flag
if(flag = condition_1){
return
}
if(flag = condition_2){
return
}
return
赋值有默认值
function mua ({time = new Date(), origin_obj = {}, origin_fun = () => {}} = {}) {
console.log('time',time)
console.log('origin_obj',origin_obj)
console.log('origin_fun',origin_fun())
}
let _mi_a_ne = this.another_var || 0
for await
let count = 0
let aynsc_fun = () => {
return new Promise(reslove => {
setTimeout(() => {
count++
console.log('aynsc_fun setTimeout',count)
reslove(count)
},2e3)
})
}
let do_func = async () => {
for(let i = 0; i < 5; i++) {
let result = await aynsc_fun()
console.log(result)
}
}
for 解构赋值
let biu = [
{id:1, label:'a'},
{id:2, label:'b'},
{id:3, label:'c'},
]
for (let {id, label} of biu) {
console.log('label',label)
}
向下取整(数值趋于0的方向)
let num = 9.99 | 0
let num2 = -9.99 | 0
let num3 = ~~15.99
let num4 = ~~-15.99
对象是否存在某个属性
let obj = {
personal:{
name:'xiaoming',
weapon:{
main:'ex sword',
sub:'knife'
}
}
}
let _exist_1 = obj?.personal?.weapon?.sub
let _exist_2 = obj && obj.personal && obj.personal.weapon && obj.personal.weapon.sub
console.log('_exist_1',_exist_1)
console.log('_exist_2',_exist_2)