知识拓展 ?. 连选链操纵

打印 上一主题 下一主题

主题 1057|帖子 1057|积分 3175

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
?. 连选链操纵  
?. 可选链操纵符
?. 是可选链操纵符,常用于访问引用类型具有不确定性的内部数据时,好比要访问一个对象中的数组,不确定数组一定有数据就可以使用 ? 取读取它的 length 属性,假如对象没有这个属性也仅会返回 undefined 而不会报错,如许可以有用规避“undefuned上没有 length 属性”的报错!
代码示例:
  1. let data = {name: 'zs'}
  2. console.log(data.list.length)        // 代码会报错!!!!
  3. let data = {name: 'zs'}
  4. console.log(data.list?.length)       // 返回 undefined 而不会报错
复制代码

?? 和 ||
?? 和 || 运算符都可以用于设置“默认值/备用值”的情况,但二者具有些微差别:
?? 运算符仅有在左侧数据为 undefined 或 null 时才会取右侧的值,所以左侧数据为 0 / false 时不会取右侧数据,仍旧取左侧的 0 / false
代码示例:
  1. let a = null
  2. console.log(a ?? '空')        // 空
  3. let a = undefined
  4. console.log(a ?? '空')        // 空
  5. let a = 0
  6. console.log(a ?? '空')        // 0
  7. let a = false
  8. console.log(a ?? '空')        // false
复制代码

|| 运算符是只要左侧数据不为真就会取右侧的数据,所以左侧数据为 0 / false 时也会取右侧数据
代码示例:
  1. let a = 0
  2. console.log(false || '空')        // 空
  3. let a = false
  4. console.log(false || '空')        // 空
  5. let a = null
  6. console.log(false || '空')        // 空
  7. let a = undefined
  8. console.log(false || '空')        // 空
复制代码
参考文章
? 可选链操纵符以及 ?? 与 || 的区别_es6中??与|| 的区别-CSDN博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表