JavaScript. Ошибка в коде. "Полезные конкуренты"


#1

Доброго времени суток.
Почему такое написание является ошибкой?
До этого на уровне “Поляна чудес” была та же самая ошибка.
Кстати, сами уровни проходятся успешно, не смотря на ошибку.

Скрин


#2

вы должны сказать: if(item and item.type != "poison") { как это было выше.

Надеюсь это поможет! :grin:


#3

Да, это действительно помогло, моё желание уместить всё в одно условие удовлетворено :grinning:.
Но до сих не ясно, почему if(item.type != "poison") является ошибкой.


#4

Потому что необходимо сначала провести проверку на существования предмета item.
Функция hero.findNearestItem() возвращает ближайший к вам предмет в поле зрения вашего героя. Если в поле зрения вашего героя нет предметов, данная функция вернёт NULL , что условно означает , что переменная item будет пуста. А при попытке определить item.type возникает ошибка, так как невозможно определить тип у несуществующего предмета item. Поэтому и нужна проверка на не пустоту в переменной:if item


#5

Смысл понят, спасибо.