Optional chaining (?.) — это оператор JavaScript, который позволяет безопасно получать доступ к свойствам глубоко вложенных объектов. Если какая-либо ссылка в цепи равна null или undefined, выражение прерывает выполнение и возвращает undefined вместо того, чтобы выбросить ошибку TypeError.
Без optional chaining доступ к вложенному свойству требует ручной проверки на null:
const city = user && user.address && user.address.city;
С optional chaining это становится намного чище:
const city = user?.address?.city;
Optional chaining работает в трёх формах:
obj?.propobj?.method()obj?.[key]null, если они не найдены на страницеОператор прерывает выполнение только когда значение слева от него строго равно null или undefined. Любое другое falsy значение, такое как 0 или "", не приведёт к прерыванию выполнения.
Optional chaining часто комбинируют с оператором nullish coalescing (??), чтобы задать значение по умолчанию:
const city = user?.address?.city ?? "Unknown";
Это гарантирует, что при разрешении цепи в undefined будет возвращено безопасное значение по умолчанию.
Optional chaining будет short-circuit и вернёт undefined, если любое значение в цепочке равно 0, false или пустой строке "".
Новый — ещё не проверен сообществом
Вы