AS3 - 如何检查变量是否存在?

时间:2011-05-29 01:09:41

标签: actionscript-3

if (XMLData.product[i].image[0].thumb) {thumbURL = XMLData.product[i].image[0].thumb;}

返回:TypeError:错误#1010:术语未定义且没有属性。

相同
if (XMLData.product[i].image[0].thumb!=undefined) {thumbURL = XMLData.product[i].image[0].thumb;}

如何检查变量是否存在?

2 个答案:

答案 0 :(得分:5)

正确的方法是将它与undefined进行比较(尽管你应该使用!==而不是!=)。它可能是未定义的早期对象。要帮助调试此问题,您可能需要检查

XMLData
XMLData.product
XMLData.product[i]
XMLData.product[i].image
XMLData.product[i].image[0]
XMLData.product[i].image[0].thumb

全部不等于undefined。

答案 1 :(得分:1)

PFhayes是对的,您需要确保定义您正在逐步执行的每个级别的属性。或者,如果你想要懒惰,你可以在try / catch语句中编写它。像这样:

if (XMLData.product[i] && XMLData.product[i].image[0] && XMLData.product[i].image[0].thumb)
{
    thumbURL = XMLData.product[i].image[0].thumb;
}else{
   //Not defined somewhere
}

try{
     thumbURL = XMLData.product[i].image[0].thumb;
}catch(err:Error){
     //Something went wrong. You can analyze the error data from here and act accordingly
}
相关问题