定义这个对象是另一个未定义的?

时间:2011-05-03 08:58:26

标签: javascript debugging object node.js

我有这段代码:

sys.puts(JSON.stringify(data[0].name));

var userData = {
    name: data[0].name,
    screenname: data[0].screen_name,
    id: data[0].id,
    url: data[0].url,
    description: data[0].description
 }

当我注释掉userData对象的创建时,一切正常,这意味着它正确地将该值写入控制台。当我把它放回去时,我得到了这个错误:

sys.puts(JSON.stringify(data[0].name));
                    ^
TypeError: Cannot read property 'name' of undefined

为什么会发生这种情况?这都属于同一个功能。

1 个答案:

答案 0 :(得分:0)

在访问其属性之前,使用guard operator验证对象:

JSON.stringify(!!window["data"] && data.hasOwnProperty("length") && data[0].hasOwnProperty("name") && data[0].name)

作为替代方法,使用try / catch块:

try
  {
  JSON.stringify(data[0].name)
  }
catch(e)
  {
  throw("Error")
  }

<强>参考