javascript条件式访问属性

By 刘志军 , 2021-10-15, 分类: javascript

JavaScript

?. 是ES2020引入的新特性,是一个条件式属性访问操作符,当你访问值为undefined变量的某个属性值时,如果使用.操作符会直接报错,如果使用条件式属性访问操作符来访问会返回undefined

看例子:

let book = {price:10,
            edition:10,
            name:"javascirpt"
}

console.log(book.page.num)

直接报错

TypeError: Cannot read property 'num' of undefined

因为book.page 的值 undefined, undefined是没有任何属性值的,所以会报错。

如果你无法确定某个值是undefined还是对象,除了可以用 if 语句来判断之外,还可以直接用条件式访问操作符来访问某个属性, 就算被访问的对象是undefined,也不会报错。而是返回 undefined

console.log(book.page?.num)

输出

undefined

关注公众号「Python之禅」,回复「1024」免费获取Python资源

python之禅

猜你喜欢

2021-11-12
Javascript 原型与原型链
2021-11-09
javascript对象的3个属性特征
2021-10-19
javascript 字符串长度
2020-12-08
JavaScript高级程序设计读书笔记三:基本引用类型
2021-09-21
Javascript 中,相等操作符两等号“==”与三个等号 “===” 有什么区别?
2020-12-08
JavaScript高级程序设计读书笔记二:变量与作用域
2021-10-15
javascript 箭头函数介绍
2020-12-07
JavaScript 高级程序设计笔记:基础语法
2021-05-13
python和javascript中的round函数区别
2021-10-30
Javascript 解构赋值