所以我想检查node.js中变量是否未定义。到目前为止,我是这样工作的:
if(typeof object.data.items[1] === 'undefined')
{
break;
}
else
{
console.log("Defined");
}
但是它给了我这个错误:
“ TypeError:无法读取未定义的属性'data'”。
关于如何在仍然检查未定义错误的同时如何绕过此错误的任何想法?
答案 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的答案。