js中的 ?? 和 ?.,以及 ?? 和 || 的区别

??控制合并操作符:
 
只有在??前面的数字为null、undefined的时候才会返回后面的数字;
||或运算符,不仅包含null、undefined,还包含0、''、false;


例如:

a??'哈哈'
let a = null或者let a = undefined 的时候才会返回  哈哈

a||'哈哈'
let a = null、undefined、0、''、false都会返回  哈哈
?.可选链接操作符:

表达式中的所有引用不存在也不会报错,只返回undefined

例如:

let obj = null

obj.name   //Uncaught TypeError: Cannot read property 'c' of null

obj?.name //undefined

或者

let obj = {}

obj?.name?.fristName  //undefined


语法:Obj?.Prop  Obj?.[expr]  array?.[index]  function?.(argument)

 

posted @ 2021-06-07 17:30  收藏小能手  阅读(2964)  评论(0编辑  收藏  举报