未打印的未定义对象的Json属性。为什么?

时间:2016-07-27 07:38:08

标签: javascript json undefined jsonobject

我遇到了一个我无法理解的简单行为。我试图检查JSON对象数组的有效性,这里的核心点是用户'选择'它的大小(例如,如果他键入 2 ,将会有 2个对象)。

每个对象都应该有一个名称和一个版本。

我想确定他输入的东西,所以当他点击他提交按钮时,我正在检查这种声明:

if (myarray[0].name !== undefined || myarray.name !== null)
{
  // Do some crazy stuff as crazy a return;
}

我没有工作。当我进一步检查(console.log,哇)时,我注意到了这一点:

console.log(myarray);         // Prints '[]' because it is empty
console.log(myarray[0]);      // Prints 'undefined', seems legit
console.log(myarray[0].name); // Prints ... Well, nothing

为什么第三个console.log无法打印undefined?未定义对象的任何属性应该是undefined,还是我在JavaScript中缺少某些内容?

提前谢谢!

1 个答案:

答案 0 :(得分:3)

  

为什么第三个console.log无法打印undefined

因为它抛出异常:TypeError: Cannot read property 'name' of undefined。当您尝试从undefinednull读取属性时会发生这种情况。