Вопрос №80258 от пользователя Александр Маковка в испытании «Морской бой»
Всем привет. Хочу немного поделиться своими наблюдениями, ну и возможно получить ответ на свой вопрос, который у меня возник. В процессе разбора решения учителя наткнулся на такую ситуацию. В коде используется конструкция !battleField[row - 1][col], которая у компилятора не вызывает "недоверия". Но ведь при row=0 обращение происходит к несуществующей строке (что не преступление), но при этом для этой строки запрашивается свойство [col], которое вообще никак не определено. Например, в том же месте кода (до любых изменений) использование console.log(!battleField[row - 1][col]); выдает ошибку. Какова природа такого поведения компилятора при использовании такой конструкции в разных условиях?
Александр Маковка, здравствуйте. Перед этой проверкой идет проверка существования этого значения !battleField[row - 1]
, поэтому тут ошибки не будет. Интерпретатор сначала проверит первое выражение, и если оно истинно, перейдет ко второму.
Иван, добрый день!
Вы, наверное, имели в виду Интерпретатор сначала проверит первое выражение, и если оно истинно *ложно*, перейдет ко второму.
Спасибо, теперь все понятно)
Александр Маковка, да, верно
Используйте Хекслет по-максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.










