前端接口对接 解构 和 前端对象 前端自检的问题; 判断条件健壮性

1.如果返回的 json  的date 里面的某个对象  这个date和对象都不确定的时候。   要小心

         let result = data?.Result
          if (result?.length && result[0]?.DocumentFile) {
            console.log('手动打开接口返回文件')
            window.open(result[0].DocumentFile)
          }
//此时 
data?.Result 可能是null 或者undifined 或者是{}(备注 空对象也算 只是拿出来做比较) ;
//那么此时 result 可能就是 对象或者是 undifined 。
//那么再进行业务处理的 if判断中 就要小心使用。 中间的&&起到了很好的防止报错的桥梁;如果对于内部的对象字段值 不确定是否存在还需要继续进行 判断。使用?.即可

2.如果使用 ES6的let {a,b}=result 解构赋值;那么一定要小心 。需要提前判断result 一定是存在的再去解构;或者使用一个兼容性默认的{}或者空【】

  let result = data?.Result
  let { DocumentNumber, DocumentFile } = result || {}

 

result
posted @ 2021-08-18 14:06  呆呆的射手座  阅读(162)  评论(0)    收藏  举报