今天有个需求要判断只有变量a不为null且不为[]时,变量b才为true
问题描述
- 一开始以为接口返回的变量a为null/非空数组,而变量b取决于变量a是否为null,即
a = b != null
- 结果测试提了个bug说 变量a还有[]的情况 ,和null一样处理,即只有a为非空数组时b才为true
- 重点:如果通过
a.length
来判断就有a为null的情况,null这object可没长度
解决方法
- 用
a?.length
来判断。只有a存在时才会走后面的length,完美避开a为null还去找长度而报错的情况 - 如果
a
不存在(undefined
)/为null
,则a?.length
将返回undefined
a?.length
其实就相当于a && a.length
可选链式操作符?
- 可参考MDN