#actionscript-3
#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;}
Как мне проверить, существует ли переменная?
Ответ №1:
Правильный способ — сравнить ее с неопределенной (хотя вы должны использовать !== вместо !=). Возможно, что это более ранний объект, который не определен. Чтобы помочь в устранении этой проблемы, вам может потребоваться проверить, что
XMLData
XMLData.product
XMLData.product[i]
XMLData.product[i].image
XMLData.product[i].image[0]
XMLData.product[i].image[0].thumb
все значения не равны undefined.
Ответ №2:
Пфайес прав, вам нужно убедиться, что каждый уровень свойств, который вы проходите, определен. ИЛИ, если вы хотите быть ленивым, вы можете просто записать это в инструкции try / catch. Вот так:
if (XMLData.product[i] amp;amp; XMLData.product[i].image[0] amp;amp; 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
}