RINCODE
@RINCODE
Я новичок, еще учусь

В JS && проверяет левую и праву сторону в незначимости от 1 значения?

В JS && проверяет левую и праву сторону в незначимости от 1 значения или я что-то делаю не так?
Просто на сколько я помню, в других языках если false встречается 1 раз, то дальше проверка не идёт
пример:
Data.length != 0 && Data[i].name == obj[2]
FormScript.js:76 ERROR TypeError: Cannot read properties of undefined (reading 'name')
    at xhr.onreadystatechange


PS: Админ не скипай пж, реально хочу разобраться
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 2
Lynn
@Lynn
nginx, js, css
Ты что-то делаешь не так. В JS оператор && тоже заканчивает работу если левая часть ложная.

Непонятно как Data.length != 0 должна гарантировать существование Data[i].
Ответ написан
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Все просто. Допустим у вас в массиве 1 элемент, а i равен единице, такого индекса нет, выражение Data[i] равно undefined.

Можно проверять допустимость значения i
i < Data.length && Data[i].name == obj[2]

Или проще

Data[i]?.name == obj[2]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
04 мая 2024, в 06:10
4000 руб./за проект
04 мая 2024, в 05:49
10000 руб./за проект
04 мая 2024, в 03:57
10000 руб./за проект