捕获未定义的javascript变量

捕获未定义的javascript变量,javascript,undefined,Javascript,Undefined,我正在使用Ajax/jsonp访问远程数据库。因此,永远不会返回response.error。我试图捕获远程服务器由于任何原因不返回数据的实例。我已经尽我所能去捕捉一个未定义的条件,但我似乎无法捕捉它。我试图用Firebug找到变量。我试过使用下面我能想到的代码的几乎所有组合,但似乎无法让它工作 if ( typeof(data.flightStatuses[0].operationalTimes.publishedDeparture.dateLoca

我正在使用Ajax/jsonp访问远程数据库。因此,永远不会返回response.error。我试图捕获远程服务器由于任何原因不返回数据的实例。我已经尽我所能去捕捉一个未定义的条件,但我似乎无法捕捉它。我试图用Firebug找到变量。我试过使用下面我能想到的代码的几乎所有组合,但似乎无法让它工作

                      if ( typeof(data.flightStatuses[0].operationalTimes.publishedDeparture.dateLocal) === "undefined") {
                        alert("flightstats is undefined");
                    }
非常感谢任何想法

我还尝试:

                      if ( typeof data.flightStatuses === "undefined") {
                        alert("flightstats is undefined");
                    }
上述代码也不会执行警报

终于!这起作用了

if ( typeof data.flightStatuses[0] === "undefined")

我真的不知道为什么,但确实如此。谢谢大家的帮助

如果未定义
data.flightStatuses
,则
data.flightStatuses[0]
将抛出错误。仅检查相关标识符是否未定义:

if(typeof data.flightStatuses === "undefined") {
    alert("flightStatuses is undefined");
} else {
    // Here you know data.flightStatuses exists, so you can test data.flightStatuses[0]
    if(typeof data.flightStatuses[0] === 'undefined'){
        alert("flightStatuses[0] is undefined");
    } else {
        // And so on, depending on how much you know about your data source
    }
}
这行吗

if (data.flightStatuses[0].operationalTimes.publishedDeparture.dateLocal) === null) {
                        alert("flightstats is undefined");
                    }
这似乎有效

   try {
        dateLocal = typeof (data.flightStatuses[0].operationalTimes.publishedDeparture.dateLocal) !== 'undefined';
        if (dateLocal) {
            // Do something with dateLocal
            // ...
        }
    }
    catch (err) {
        alert("flightstats is undefined: " + err);
    }

如果
数据
飞行状态
运行时间
发布部分
也未定义,会发生什么情况?仅供参考,除非最左边的变量可能未定义,否则不需要typeof。在任何其他情况下,检查
===undefined
是非常安全的。此外,
typeof
是一个运算符,而不是一个函数,因此您可以省略
()
确定。答案很好。我将尝试两种方法并向您汇报!谢谢。&#^$%好的。我尝试过:如果(typeof data.flightStatuses==“undefined”){alert(“flightstats未定义”);但它仍然不会执行该警报……}?true:false不需要