и как это упрощает проверку полей
Сегодня я буду обсуждать необязательную цепочку.
Необязательная цепочка — это новая функция, появившаяся в es2020. Если кто-то из вас является любителем или разработчиком javascript, ознакомьтесь с ним, так как в нашем коде можно использовать отличные функции.
Хорошо… что же такое необязательная цепочка?
Необязательная цепочка позволяет проверять глубоко вложенные поля, когда на поля ссылаются в операторе. Если одно из полей не определено, браузер вылетит из-за ссылки на неопределенное поле javascript.
Ну… что это значит? Допустим, у нас есть следующее:
Прежде чем ссылаться на readField, нам нужно убедиться, что obj определен, obj.a определен, obj.b определен и obj.c определен. Если ни одно из них не определено, мы получим сообщение об ошибке в консоли, жалующееся на то, что одно из полей не определено.
Ну… неужели нам действительно придется регулярно проверять подобный вложенный объект?
Допустим, вы делаете вызов API, и он возвращает вам некоторый фрагмент данных, на который вам нужно сослаться. Много раз вы, вероятно, можете догадаться, какой тип JSON будет возвращен. Однако у нас действительно нет контроля над форматом данных любого стороннего API/сервера, к которому мы пытаемся получить доступ.
Например, мы ожидаем, что obj будет глубоко вложенным объектом, содержащим поля a, b и c. Но что, если произошли изменения в бэкэнде, а поле obj содержит только a?
Да, я продемонстрировал вам способ проверки каждого вложенного поля. Но необязательная цепочка предлагает более удобное решение:
Вместо того, чтобы вручную писать код для проверки каждого вложенного поля, мы можем просто поставить вопросительный знак рядом с каждым полем, которое нам нужно проверить. Если какой-либо из них не определен, то readField будет неопределенным.
Какой бы полезной ни была эта функция, есть несколько браузеров, которые в настоящее время не поддерживают этот синтаксис, потому что эта функция является относительно новой. Проверьте соответственно, когда вы используете необязательную цепочку в своем коде.
Вот и все! Вы только что узнали, как необязательная цепочка работает в javascript.