当获取深层对象的属性,并且属性都可能不存在的时候,请问是在最后用一个?.就可以呢,还是每个属性都要用?.
const obj = {
a: 1,
b: {
c: {
d: 2
}
}
}
第一种写法:obj.e.f.g?.i
第二种写法:obj?.e?.f?.g?.i
这两种写法哪一种正确呢?我控制台里试了好像第一种也可以,可选链操作符会给前面的每一层都判断undefined吗?只要前面有一层是undefined,只写一个?.放在最后,前面的好几层都能判断出来吗?
求教大佬
每层都要写。
a?.b
的本质就是a != null ? a.b : undefined
。