假设后台返回的接口数据 res 里包含了一个字段 list,list 不是空数组的时候我们才会进行循环,否则就会报错,但是怎么判断他不是空数组呢?
let list=res.list
if(list){
if(list.length>0){
// 循环
}
}
上面的代码中我是在第二层判断里进行的数组循环,为什么要多此一举加一层 list.length>0 的判断呢?
javaScript 里 null、数字 0、空字符串这些在 if 判断里都会被转化为 false,但是如果后台直接返回一个空数组[],在判断里是会被转化成 true 的, 因此还要再加一层判断 list.length>0, 同时写判断的时候要注意,这两个判断是嵌套关系,不能写成 list&&list.length>0,如果 list 的值为 null,&& 后面的 list.length>0 就会报错,因为编译时找不到 list 的 length 属性。
ps: 写成三目运算符代码会更简洁