Что выведет код Junior Современный синтаксис обновлено

Опциональный вызов

Вопрос

Что выведет код? По строке на каждый вывод.

const obj = { fn: null, method() { return 'работает'; } };
console.log(obj.fn?.());
console.log(obj.method?.());
console.log(obj.missing?.());
console.log(obj.method?.() ?? 'дефолт');

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: undefined, работает, undefined, работает. Почему так Опциональный вызов заменяет проверку typeof fn === 'function'.

Что выведет

undefined
работает
undefined
работает

Разбор

Почему так

Опциональный вызов заменяет проверку typeof fn === 'function'. Удобен для необязательных колбэков в пропсах: onChange?.(value).

Вывод

undefined
работает
undefined
работает

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме