可选链运算符(?.)和空值合并运算符(??)的使用
本帖最后由 wwwwwllllk 于 2022-11-5 18:21 编辑> 本帖最后由 wwwwwllllk 于 2022-11-5 18:20 编辑
## 可选链运算符(?.)
```
let obj = null
console.log(obj.name)
// 我们平时在项目中加入后端传入的数据的data有时候是null,然后我们要是对象的时候取对象里面的某一个值
if(obj && obj instanceof Object){
console.log(obj.name)
}
// 假如用了可选链选择符,我们可以这样写
console.log(obj?.name)
// 上面是为了防止obj为null,undefined的时候, 直接obj.name会报错 如果初始值obj为{},是不会报错的
/*
数组也是一样
*/
let list;
// 之前我们要这样写
if(list instanceof Array && list.length > 0) {
list.map((item) => {
console.log(item)
})
}
// 现在这样写就好了
list?.map((item) => {
console.log(item)
})
```
## 空值合并运算符(??)
```
// 我们定义一个值用||的话前面是0,false,null,undefined都会输出后面的值,但是我只想前面为null,undefined的时候输出后面的值
// 为false,0这些也代表我有值
let name;
// let a = 0 || '哈哈' // 哈哈
// let b = false || 'hehe' // hehe
// let c = null || 'heihei' // heihei
// let d = name || '张三'// 张三
let a = 0 ?? '哈哈' // 0
let b = false ?? 'hehe' // false
let c = null ?? 'heihei' // heihei
let d = name ?? '张三'// 张三
```
空值合并运算符(?.)是??吧 李恒道 发表于 2022-11-5 17:24
空值合并运算符(?.)是??吧
写错了,重新改一下 自从挨打后,我再也不这样子写了 极品小猫 发表于 2022-11-6 14:46
自从挨打后,我再也不这样子写了
为什么会挨打 好简洁好优雅啊w~
wwwwwllllk 发表于 2022-11-6 17:02
为什么会挨打
你希望简洁优雅,有人希望看得懂~
大概三元运算符和&& || 是极限 Vikrant 发表于 2022-11-7 12:06
好简洁好优雅啊w~
确实,哥哥说的有道理。。。。。
页:
[1]