检查数组是否已定义并且具有长度

check if array is both defined and has length

本文关键字:数组 是否 定义 检查      更新时间:2024-01-26

我有一个类似这样的javascript查询,用于检查undefined数组和empty数组:

if(array){
    if(array.length > 0){
       function1();
    }else{
       function2();
    }
}else{
    function2();
}

我试过类似的东西

if(array && ( array.length > 0)){
    function1();
}else{
    function2();
}

但没有骰子,则得到variable is undefined错误。根据这个答案,if(variable)在这个用例中运行得很好,但它只适用于字符串而不是数组。在这样的情况下,有没有办法在javascript中实现二合一?

我得到一个变量是未定义错误

这意味着array根本没有在任何地方声明。为了防止这种情况,您可以使用typeof:

if (typeof array !== "undefined" && array && array.length > 0)

实例|源

完全未定义的符号和解析为包含值undefined.的变量的定义符号之间存在差异。你可以在任何事情上安全地使用typeof,即使是在任何地方完全未声明的东西,但如果你试图读取未在任何地方声明的东西的,你会得到ReferenceError,说它不存在。