Вопрос №80258 от пользователя Александр Маковка в испытании «Морской бой»

Александр Маковка

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

3 0

Ivan Gagarinov

Александр Маковка, здравствуйте. Перед этой проверкой идет проверка существования этого значения !battleField[row - 1], поэтому тут ошибки не будет. Интерпретатор сначала проверит первое выражение, и если оно истинно, перейдет ко второму.

0

Александр Маковка

Иван, добрый день! Вы, наверное, имели в виду Интерпретатор сначала проверит первое выражение, и если оно истинно *ложно*, перейдет ко второму. Спасибо, теперь все понятно)

0

Ivan Gagarinov

Александр Маковка, да, верно

0

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
с нуля
Разработка фронтенд-компонентов для веб-приложений
9 февраля 10 месяцев
Иконка программы Онлайн-буткемп. Фронтенд-разработчик
Профессия
Новый с нуля
Интенсивное обучение профессии в режиме полного дня
9 февраля 4 месяца
Иконка программы Python-разработчик
Профессия
с нуля
Разработка веб-приложений на Django
9 февраля 10 месяцев
Иконка программы Java-разработчик
Профессия
с нуля
Разработка приложений на языке Java
9 февраля 10 месяцев
Иконка программы PHP-разработчик
Профессия
с нуля
Разработка веб-приложений на Laravel
9 февраля 10 месяцев
Иконка программы Инженер по тестированию
Профессия
с нуля
Ручное тестирование веб-приложений
9 февраля 4 месяца
Иконка программы Node.js-разработчик
Профессия
с нуля
Разработка бэкенд-компонентов для веб-приложений
9 февраля 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
с нуля
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
9 февраля 16 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
c опытом
Создание веб-приложений со скоростью света
9 февраля 5 месяцев
Иконка программы Верстальщик
Профессия
с нуля
Верстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Аналитик данных
Профессия
В разработке с нуля
Сбор, анализ и интерпретация данных
16 марта 8 месяцев