Эта статья была написана с моей точки зрения, если вы видите, что что-то не так, не стесняйтесь комментировать.

Необязательная цепочка - это оператор?. (вопросительный знак и точка), который позволяет считывать значение свойства в объекте, аналогичном оператору. (точка).

Но разница в операторе ?. проверит, является ли свойство объекта, которое мы собираемся прочитать, пустым или нет, в этом случае вместо выдачи ошибки он выполнит возврат undefined.

Например

const obj = { foo: {}}
console.log(obj.foo?.bar?.foobar) // undefined
// Instead of throwing an error, we've received undefined.
// because of property bar is undefined.

Оператор? также может подтвердить, что функция, которую мы собираемся выполнить в объекте, существует или нет, чтобы предотвратить выполнение ошибки.

Необязательная цепочка является частью функций ES11. В настоящее время статус достиг стадии 3 на заседании TC39 в июле 2019 года.

Некоторые браузеры уже поддерживают как настольные, так и мобильные устройства.

Хорошо, я считаю, что каждый разработчик сталкивался с вложенным объектом хотя бы раз в своей жизни, иногда какое-то свойство в объекте пропадало или свойства не совпадали с кодом проверки из выборки данных или каким-либо побочным эффектом.

Эта проблема вызовет ошибку, например Ошибка: невозможно прочитать свойство «x» из неопределенного.

Метод, который мы используем сегодня.

Как видите, нам нужно написать длинное выражение для проверки свойства, которое мы собираемся читать во вложенном объекте.

Если мы не написали выражение, иногда чтение свойства во вложенном объекте может вызвать ошибку!

Но если мы используем операцию?

Нам больше не нужно писать длинное выражение с оператором && для проверки свойства на каждом слое! (выражение может быть длиннее, если ваш объект находится в сложном вложенном объекте).

Позвольте увидеть все?. способности!

  1. Убедитесь, что функция, которую мы собираемся выполнить в объекте, существует или нет, чтобы предотвратить выполнение ошибки.

2. Использование с элементом доступа к массиву.

3. Использование выражения with.

4. Использование с нулевым оператором объединения.

Цепочка операций - это лишь часть возможностей ES2020 (также известного как ES11), который также имеет другие функции, упрощающие разработку на Javascript, ура!