Разбор современных операторов и методов JavaScript

?. безопасно продолжает доступ для не-nullish значения; ?? подставляет замену только для null/undefined. Остальные конструкции решают отдельные задачи копирования, присваивания и индексации.

Короткий ответ

Что ответить на собеседовании

?. безопасно продолжает доступ для не-nullish значения; ?? подставляет замену только для null/undefined. Остальные конструкции решают отдельные задачи копирования, присваивания и индексации.

Подробный разбор

Ответ с пояснениями

Условие

Объясните, что означают следующие конструкции языка:

  1. ?.
  2. ...
  3. ??
  4. &&=
  5. structuredClone(source)
  6. collection.at()

Ответ

?. безопасно продолжает доступ для не-nullish значения; ?? подставляет замену только для null/undefined. Остальные конструкции решают отдельные задачи копирования, присваивания и индексации.

  • ?. — optional chaining: user?.name возвращает undefined для null/undefined; необъявленную переменную не спасает.
  • ... — spread при разворачивании массива/объекта/аргументов и rest при сборе; объектная копия поверхностная.
  • ?? — nullish coalescing: 0, false и '' сохраняются.
  • &&= — присваивает правую часть, только если текущее значение truthy; левая часть вычисляется один раз.
  • structuredClone(source) — глубокое копирование поддерживаемых структур, включая циклы; функции не клонируются.
  • at(index) — доступ по индексу, отрицательный индекс считается с конца: array.at(-1). Set/Map не получают такой метод автоматически.

Эти операции не взаимозаменяемы: например, || и ?? по-разному обрабатывают ноль.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее