ES6中对象的扩展(三)

链判断运算符在日常中,判断是一个对象属性是否存在,有以下写法 let message = (message && message.head && message.head.style && message.head.style.div) || 'null'三元运算符判断 let div = document.querySelector('div'); let box = div ? div.textContent : unde
摘要由CSDN通过智能技术生成

链判断运算符

在日常中,判断是一个对象属性是否存在,有以下写法

	let message = (message 
		 && message.head 
		 && message.head.style
		 && message.head.style.div) || 'null'

三元运算符判断

	let div = document.querySelector('div');
	let box = div ? div.textContent : undefined

这样层层嵌套显得不直观,并且麻烦,因此ES6引入了链判断运算符 (?.)

	let message = {
   
		head: {
   
			style: {
   
				div: 'div'
			}
		}
	}
	let message1 = message ?. head ?. style ?. div
	let box = document.querySelector('div')?.textContent

上面代码使用了?. 运算符,直接在链式调用时判断,如果左边为null或undefined,不再往下运算,直接返回undefined

链运算符使用的范畴

obj?.prop // 对象属性
obj?.[prop] // 同上 
func?.() //  函数或对象函数的调用

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值