检查变量是否未定义

时间:2018-12-27 11:38:27

标签: node.js undefined undefined-behavior

所以我想检查node.js中变量是否未定义。到目前为止,我是这样工作的:

if(typeof object.data.items[1] === 'undefined')
{
    break;  
}
else
{
    console.log("Defined");         
}

但是它给了我这个错误:

  

“ TypeError:无法读取未定义的属性'data'”。

关于如何在仍然检查未定义错误的同时如何绕过此错误的任何想法?

4 个答案:

答案 0 :(得分:2)

检查对象和对象。首先定义数据。

if(object && object.data && typeof object.data.items[1] === 'undefined')
{
    break;  
}
else
{
    console.log("Defined");         
}

if(!object || !object.data || typeof object.data.items[1] === 'undefined')
    {
        break;  
    }
    else
    {
        console.log("Defined");         
    }

答案 1 :(得分:0)

似乎object变量也是未定义的。尝试以下代码:

if(
    typeof object === 'undefined' ||
    typeof object.data === 'undefined' ||
    typeof object.data.items[1] === 'undefined')
{
    break;  
}
else
{
    console.log("Defined");         
}

答案 2 :(得分:0)

if(!_.get(object,['data','items',1]))
{
    break;  
}

答案 3 :(得分:0)

当您尝试访问JSON对象的属性时,必须确保点运算符的左侧必须具有一些值,但不能为undefined或null。即 如果要访问// ------------------------------- // reset preferences local = new Storage(this); images = new ArrayList<>(); imagesLabels = new ArrayList<>(); local.putListMat("images", images); local.putListString("imagesLabels", imagesLabels); // ------------------------------- ,则必须确保每个左侧属性都有一些值。您可以使用@rijin的答案。