-
?.可选链运算符
-
??空值合并操作符(空值合并操作符)
一:?.在javascript中如果一个值为null、undefined,直接访问下面的属性,会报 `Uncaught TypeError: Cannot read properties of undefined` 异常错误。
const f={a:{b:"d"}}
console.log(f?.b?.c ) // undefined
console.log(f.b.c ) //报错
将报错变成null或者undefined。
二:??在js中叫做(空值合并操作符),他的作用是用于判断一个值是否为null或undefined,如果跟在他前面的值为null或undefined则取跟在他后面的值,否则就取他前面的值。
const a="嘎嘎";
const b=null
const c = undefined
const d= false
const e = 0
console.log(a??'default string') //嘎嘎
console.log(b??'default string') //default string
console.log(c??'default string') //default string
console.log(d??'default string') //false
console.log(e??'default string') //0
和 || 运算符的区别:
-
|| 只会在左边的值为假值时返回右边的值 (0, ‘’, undefined, null, false 等都为假值)
-
?? 是在左边的值为undefined或者null时才会返回右边的值