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