async function f(result = 1) {

Alert покажет строку nullab1e примерно после завершения секундного таймера: null не включает значение параметра по умолчанию.

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

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

Alert покажет строку nullab1e примерно после завершения секундного таймера: null не включает значение параметра по умолчанию.

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

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

Условие

async function f(result = 1) { let promiseB = new Promise(resolve => { setTimeout(() => resolve("1e"), 200) });

let promiseA = new Promise(resolve => {
    setTimeout(() => resolve("ab"), 1000)
});

result += await promiseA;
result += await promiseB;

alert(result);  // ?

}

f(null);

Ответ

Alert покажет строку nullab1e примерно после завершения секундного таймера: null не включает значение параметра по умолчанию.

Оба таймера запускаются до первого await. Сначала ожидается promiseA со строкой ab; операция null + 'ab' даёт 'nullab'. promiseB за это время уже выполнился со значением 1e, которое затем добавляется как строка. Значение по умолчанию 1 применяется только при undefined или отсутствии аргумента, а задержки таймеров не являются точным расписанием.

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

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

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

Подробнее