Вопрос проверяет понимание опциональной цепочки (?.) в JavaScript при вызове метода map на массиве, который может быть null или undefined.
Опциональная цепочка (?.) — это синтаксическая конструкция JavaScript, которая позволяет безопасно обращаться к вложенным свойствам или вызывать методы, если промежуточное значение может быть null или undefined. Вместо того чтобы вручную проверять каждое значение, вы используете ?. и, если значение равно null или undefined, выражение коротко замыкается и возвращает undefined.
Метод map доступен только для массивов. Если переменная, которая предположительно является массивом, на самом деле равна null или undefined, прямой вызов map приведёт к ошибке TypeError. Использование опциональной цепочки предотвращает эту ошибку.
// Пример: массив существует
const arr = [1, 2, 3];
const result = arr?.map(x => x * 2);
console.log(result); // [2, 4, 6]
// Пример: массив отсутствует (null)
const arr2 = null;
const result2 = arr2?.map(x => x * 2);
console.log(result2); // undefined
// Пример: массив отсутствует (undefined)
const arr3 = undefined;
const result3 = arr3?.map(x => x * 2);
console.log(result3); // undefinedЭтот подход часто используется при работе с данными из API, где поле может быть массивом или отсутствовать. Например, при получении списка пользователей:
const response = { users: null };
const userNames = response.users?.map(user => user.name);
console.log(userNames); // undefined, без ошибкиТакже опциональная цепочка полезна в цепочках вызовов, когда нужно выполнить несколько операций над массивом, который может быть null.
Опциональная цепочка с map делает код более безопасным и читаемым, избавляя от необходимости писать длинные проверки на null/undefined. Её стоит применять везде, где есть вероятность, что массив может отсутствовать, особенно при работе с внешними данными или необязательными полями объектов.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию