技术实践
用这些技巧提高你的 JS 技能
JS 删除对象中的某个属性,`delete`是删除对象属性唯一真正的方法,但它的工作比其“替代”设置慢100倍

JS 删除对象中的某个属性,
delete是删除对象属性唯一真正的方法,但它的工作比其“替代”设置慢100倍object[key] = undefined
1、如何高效的移除属性
js
const removeProperty = (target, propertyToRemove) => {
// 将该属性拆分为从另一个对象的目标中删除
const { [propertyToRemove]: _, ...newTarget } = target
return newTarget
}
const toto = { a: 55, b: 66 }
const totoWithoutB = removeProperty(toto, 'b') // { a: 55 }
2、当只有对象存在时才向其添加属性
❌ 不建议的做法
js
const toto = { name: 'toto' }
const other = { other: 'other' }
// The condition is not important
const condition = true
if (condition) {
other.name = toto.name
}
✅ 推荐做法
js
const condition = true
const other = {
other: 'other',
...condition && { name: 'toto' }
}
为变量设置默认值
js
let toto
console.log(toto) //undefined
toto = toto ?? 'default value'
console.log(toto) //default value
toto = toto ?? 'new value'
console.log(toto) //default value
使用控制台计时器
js
console.time()
for (i = 0; i < 100000; i++) {
// some code
}
console.timeEnd() // x ms