и как это упрощает проверку полей

Сегодня я буду обсуждать необязательную цепочку.

Необязательная цепочка — это новая функция, появившаяся в es2020. Если кто-то из вас является любителем или разработчиком javascript, ознакомьтесь с ним, так как в нашем коде можно использовать отличные функции.

Хорошо… что же такое необязательная цепочка?

Необязательная цепочка позволяет проверять глубоко вложенные поля, когда на поля ссылаются в операторе. Если одно из полей не определено, браузер вылетит из-за ссылки на неопределенное поле javascript.

Ну… что это значит? Допустим, у нас есть следующее:

Прежде чем ссылаться на readField, нам нужно убедиться, что obj определен, obj.a определен, obj.b определен и obj.c определен. Если ни одно из них не определено, мы получим сообщение об ошибке в консоли, жалующееся на то, что одно из полей не определено.

Ну… неужели нам действительно придется регулярно проверять подобный вложенный объект?

Допустим, вы делаете вызов API, и он возвращает вам некоторый фрагмент данных, на который вам нужно сослаться. Много раз вы, вероятно, можете догадаться, какой тип JSON будет возвращен. Однако у нас действительно нет контроля над форматом данных любого стороннего API/сервера, к которому мы пытаемся получить доступ.

Например, мы ожидаем, что obj будет глубоко вложенным объектом, содержащим поля a, b и c. Но что, если произошли изменения в бэкэнде, а поле obj содержит только a?

Да, я продемонстрировал вам способ проверки каждого вложенного поля. Но необязательная цепочка предлагает более удобное решение:

Вместо того, чтобы вручную писать код для проверки каждого вложенного поля, мы можем просто поставить вопросительный знак рядом с каждым полем, которое нам нужно проверить. Если какой-либо из них не определен, то readField будет неопределенным.

Какой бы полезной ни была эта функция, есть несколько браузеров, которые в настоящее время не поддерживают этот синтаксис, потому что эта функция является относительно новой. Проверьте соответственно, когда вы используете необязательную цепочку в своем коде.

Вот и все! Вы только что узнали, как необязательная цепочка работает в javascript.