1. 空值合并操作符(??)
空值合并操作符(??)是一个逻辑操作符,
当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。
console.log(null ?? 666)
console.log(undefined ?? 666)
// 以上输出结果都为666
2.可选链操作符( ?. )
可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值
<!-- error ?? response ?? data ?? code === 10002-->
let obj = {
error: {
response: {
data: {
code: 10002
}
}
}
}
console.log(obj?.error?.response?.data?.code) 此次结果是10002
// 上面?.只要对象.属属性名 只要有一个找不到就会返回underfined