判断数组不为空

假设后台返回的接口数据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:写成三目运算符代码会更简洁java