【发布时间】:2016-05-05 17:05:38
【问题描述】:
我正在尝试检查是否存在特定的 javascript 对象。
var success = function(data) {
var x= 0;
var numOfCards = data.length;
for (x=0;x<data.length - 1;x++)
{
if (typeof data[x].labels[0].name !== 'undefined')
{
alert("Object Exists");
}
}
}
但是,Chrome 收到以下错误:
(index):21 Uncaught TypeError: Cannot read property 'name' of undefined
当然,我使用 typeof 来检查对象的状态本身不应该导致错误吗?在第一次迭代时,警报框按预期显示,因为:
data[0].labels[0].name = "我是一个价值"
然而,
数据[0].labels[1].name
由于“标签”数组为空而导致错误。
【问题讨论】:
-
typeof只返回一个值的“类型”。在评估生成值的表达式时,您肯定会遇到错误。示例:typeof foo()。如果foo不是函数,则会抛出错误。
标签: javascript function if-statement undefined typeof