问号点(?.)
参考文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
当访问多层对象属性(比如 res.data.list)时,如果属性res.data为空,则会报引用错误
为此我们不得不这么处理:

let dataList = res && res.data && res.data.list

看着非常不美观,今天介绍的新语法就是为了解决这种问题的 (可选链操作符?.)

有了可选链,就可以对一个为null或者undefined属性安全引用:

let dataList = res?.data?.list

作用就是判断这个对象(this.element)下的(businessObject)下的(value)下的(length)是否为null或者undefined,当其中一链为null或者undefined时就返回undefined,这样即使中间缺少一个属性也不会报错,双问号后面接的就是默认值。

var obj ={}
console.log(obj ?. a ?. b)  // undefined
console.log(obj ?. a ?. b ?? 88 ) // 88
console.log(obj)    // Object
console.log(obj.a)  // undefined
console.log(obj.a.b)    // 报错var obj={a:{b:1}}
console.log(obj ?. a ?. b)  // 1
console.log(obj ?. a ?. b ?? 66) // 1
console.log(obj)    // {a:{b:1}}
console.log(obj.a)  // {b:1}
console.log(obj.a.b)// 1

【JS】问号点(?.)相关推荐

  1. js 问号点操作符 (可选链 双问号)

    配置使用可选链?. 和 双问号?? 语法 一.什么是可选链 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Oper ...

  2. js问号表达式(三元表达式)

    表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3. ========== ...

  3. webpack 最佳实践

    本文讲述的最佳实践是从日常业务中总结而出的,不一定适合所有项目.毕竟每个公司或个人的项目不同,最佳实践也会有所不同.但是可以从这篇文章借鉴吸收一点有用的东西,有问题的地方也欢迎大家积极吐槽指正. 为了 ...

  4. php$后面加点有什么用,css和js后加问号和数字有什么用

    作用:强制浏览器调用新地址,防止缓存.在css和js后加问号和随机数字,不会影响文件的调用:但是,如果改变了数字,浏览器就会当成一个新文件读取,而不会读取以前的缓存文件. css和js后加问号和数字的 ...

  5. js截取url问号前面_js截取url问号后参数并转化为对象

    题目:js截取url问号后参数并转化为对象: function urlToObj(str){ var obj = {}; var arr1 = str.split("?"); va ...

  6. js 获取url问号前_收下这波 JS 技巧,从此少加班

    各种业务开发都离不开对数据的处理,然而遇到的很多数据都是不好处理的.这个时候就需要寻求搜索引擎的帮助.这种方法效率是非常低下的,而且根据作者的个性不能保证其对自己的口味.因此这篇文字包含了一份 JS ...

  7. php 双问号 语法,JS 新语法「可选链」「双问号」已进入 Stage 3

    你可能写过这样的代码 var street = user.address && user.address.street; 复制代码 有了这个新语法,你可以写成 var street = ...

  8. js截取url问号前面_JS获取URL中问号后面参数值

    该功能已经在 ez.js 更好的实现,本文的方法依旧可用,但将不再更新. ez.js 提供了一些常用的 js 方法. 支持以下几种传参的形式: 使用井号#: http://x.x.com/x.html ...

  9. 【JS】问号点(?.)和双问号(??)的用法

    1. 问号点(?.) 当访问多层对象属性(比如 res.data.list)时,如果属性res.data为空,则会报引用错误,为此我们不得不这么处理: let dataList = res & ...

  10. js中 “问号问号” 与 “问号点” 的意思

    js中 "问号问号" 与 "问号点" 的意思 js中??和?.的意思 - .why - 博客园

最新文章

  1. Windows sever 2008
  2. java短横线转驼峰_第二讲:Java的运作原理
  3. 云南大学计算机网络原理,云南大学软件学院计算机网络原理期中试卷王世普.doc...
  4. 北京大学自考计算机应用本科,北京大学自学考试本科2019年还能报考吗
  5. JDK8中的新时间API:Duration Period和ChronoUnit介绍
  6. java文件复制速度_【Java】Java代码拷贝文件的速度
  7. 每日一测5(关于继承)
  8. c语言if语句教学设计,c语言if语句教学设计.pdf
  9. Linux运行多个openssl,linux – 使用多选项解释rsa的openssl速度输出
  10. Macmini 2012Late硬盘异响和Mac下设置apm
  11. python制作动态二维码步骤_七夕 | 如何用Python制作动态二维码,来哄女朋友开心?...
  12. MFC Afx*.h 详解
  13. xgboost算法_XGBoost算法背后的数学:尽可能简单地解释XGBoost算法背后的数学机制...
  14. LTE信令流程——位置更新
  15. 单片机之FPGA选修部分基础了解
  16. 小程序中wx.setStorage和 wx.getStorage
  17. android怎么集成sdk,集成方式-Android开发集成-SDK开发集成-信令-网易云信开发文档...
  18. matlab 车牌图识别,基于MATLAB车牌图像识别的设计与实现(附答辩记录)
  19. 我对位运算的若干疑问和认识
  20. sql server 2382端口问题

热门文章

  1. NRF905无线通讯模块的距离到底有多远呢?
  2. 敏捷开发: 每个人都必须成为通才吗?
  3. RK3568人工智能物联网,专为AI应用而生
  4. 昨天我开除了一名程序员,因为简历造假!
  5. 2009 11月21日李兴华老师JAVA学习技术讲座
  6. 大坝安全监测和水雨情测报系统-智慧水利
  7. 辩驳一个默认的说法:IE6不支持!important
  8. 逃出你的肖申克(一):一定要亲身经历了之后才能明白?
  9. (附源码)springboot球鞋调货管理系统 毕业设计 160942
  10. 现在买房子,傻瓜才掏钱