setTimeout(function() {
alert( i );
}, 5);
var i;
function hardWork() {
// время выполнения этого кода >100 мс, сам код неважен
for (i = 0; i < 1e8; i++) hardWork[i % 2] = i;
}
function fib(n) {
return n <= 1 ? n : fib(n - 1) + fib(n - 2);
}
fib(33); ~43мс
hardWork();
Подскажите пожалуйста. почему алерт выдает 10^8? setTimeout вызывается самая первая из трех функций, но т.к. у нее стоит отложенный запуск 5мс, интерпретатор запускает слудеющую по порядку - это fib(33), который выполняется 43мс. Почему алерт не выведет undefined после выполнения fib(33)?