Задача JS

Задача JS

@front_tests

Ответ:

one
three
two

Обьяснение:

В самом простом случае правило такое: все что находится в setTimeout не выполнится через N миллисекунд, а добавится в стек вызовов. Но перед фактическим вызовом, если в стеке еще есть что-то, оно выполнится первым. Поэтому таймаут с 0 мс добавляет console.log('two') в конец стека. А перед ним уже есть еще два вызова. Этим объясняется, что асинхронный код выполняется после синхронного.

Более подробно изучить теорию можно на моём втором канале Front Study

Код для проверки:

console.log('one');

setTimeout(function() {
  console.log('two');
}, 0);

console.log('three');

Report Page