操作员类型未按预期操作

The typeof operator is not operating as expected

本文关键字:操作 类型 操作员      更新时间:2023-09-26

我正在尝试检查是否存在特定的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收到以下错误:

(索引):21未捕获类型错误:无法读取未定义的属性"name"

当然,我使用typeof来检查对象的状态本身不应该导致错误吗?在第一次迭代时,警报框按预期显示,因为:

data[0].labels[0].name="我是一个值"

然而,

data[0]。标签[1]。名称

导致错误,因为"labels"数组为空。

这肯定能按预期工作。

当然,我使用typeof来检查对象的状态本身不应该导致错误吗?

当然,如果name未定义。在这种情况下,data[0].labels[0]已经未定义!

如果要允许所有级别都是undefined,则在检查其中的嵌套对象之前,必须为每个级别嵌套if语句和typeof

检查数据类型[x].labels[0].name!==='之前undefined',请确保typeof data[x].labels[0]!=='未定义

if (typeof data[x].labels[0] !== 'undefined')
{
    alert("Object Exists");
}