js中??和?.用法

发布于 2020-12-30  180 次阅读


###之前学习flutter看到dart中有?.用法,后来js中了解到??和 ?.,记录一下

?? 默认赋值

console.log(1 ?? "xx")  //1
console.log(0 ?? "xx") //0
console.log(null ?? "xx") //xx
console.log(undefined ?? "xx")  //xx
console.log(-1 ?? "xx") //-1
console.log("" ?? "xx")

不过他是忽0和空字符串等错误的值

?. 类似&

 let res = obj?.data?.list
<=等价=> let res = obj && obj.data && obj.data.list
 ```

 ```
var obj ={}
console.log(obj?.a?.b ?? 233 ) //233
var obj={a:{b:1}}
console.log(obj?.a?.b??233) //1

我们总是担心自己不够好,殊不知,当我们踏出去的时候,便是
最好的自己