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;}
如何检查变量是否存在?
答案 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
}