
想要拿到host需要判断 config是否存在再判断config.db最后才能拿到config.db.host 非常难受
function main(config) {
let dbHost = config && config.db && config.db.host
console.log(dbHost); //127.0.0.1
}
main({
db:{
host:'127.0.0.1',
username:'locelhost'
},
cache:{
host:'https://www.cnblogs.com/Lucky-daisy',
username:'daisy'
},
})
使用ES11的可选链操作符 ?.直接在链式调用的时候判断,左侧的对象是否为null或undefined。如果是,就不再往下运算,直接返回undefined 非常好用
function main(config) {
let dbHost = config?.db?.host
console.log(dbHost); //127.0.0.1
}
main({
db:{
host:'127.0.0.1',
username:'locelhost'
},
cache:{
host:'https://www.cnblogs.com/Lucky-daisy',
username:'daisy'
},
})
本文介绍了如何使用ES6的可选链操作符(?.)来简化深度访问对象属性时的条件判断,通过示例展示了在处理可能不存在的嵌套属性时,可选链操作符如何避免程序报错并返回undefined,从而提高代码的可读性和维护性。
845

被折叠的 条评论
为什么被折叠?



