一、背景
当使用数据的时候,如果数据结构比较复杂,数据深度比较深,这个时候某层级的字段可能没有数据,或者某层级的字段是null(特别是从接口获取数据),这时候可能会报错了,如图:
本文要处理的就是 undefined 与 报错 的情况
二、方法
2.1、方法一 ||
如果只是最后一个层级的数据不确定是否存在可以适用 “||” 的方法
错误示例:
正确示例:
2.2、方法二 &&
正确示例1:
错误示例1:
修正示例1:
此时没有报错,不会阻断后续代码的执行
错误示例2:
修正示例2:
此时没有报错,不会阻断后续代码的执行
2.3、方法三 ?
正确示例:
错误示例:
修正示例:
此时返回undefined,没有报错,不会阻断后续代码的执行
修正示例:
此时结合 “||” 方法,返回 空字符串 “” ,没有报错,也没有报undefined
2.4、方法四 obj.hasOwnProperty("name")
存在,返回 true
不存在,返回 false
可以结合三目运算
可以结合 ||
不可以连续使用
第一个返回了Booleans值,后边一个基于布尔值检测,返回false
2.5、方法五 try {} catch () {}
打印了报错信息,指出错误的原因,这个方法很好,不只可以用于处理深层数据可能带来的错误,还可以处理一个方法,或者一个代码段可能出现的错误
2.6、方法六 lodash
ladash里边也有提供一些方法。比如has方法。
三、欢迎交流指正,关注我,一起学习。