Event loop

Задача #1

Что будет в консоли?

console.log(1);
 
setTimeout(function () {
    console.log(2);
});
 
Promise.resolve(3).then(console.log);
 
console.log(4);
 
setTimeout(function () {
    console.log(5);
}, 0);
 
console.log(6);

Задача #2

Что будет в консоли?

function main() {
    Promise.resolve().then(() => {
        console.log("Dima");
    });
 
    setTimeout(() => {
        console.log("Masha");
    }, 1000);
 
    setTimeout(() => {
        console.log("Gena");
 
        setTimeout(() => {
            console.log("Kirill");
        }, 0);
    }, 0);
 
    console.log("Anna");
 
    queueMicrotask(() => {
        console.log("Fedor");
    });
 
    setTimeout(() => {
        console.log("Gosha");
    }, 0);
 
    new Promise(() => console.log("Boris")).then();
}
 
main();

Задача #3

Что будет в консоли и почему?

const foo2 = () => {
    console.log("foo2");
    setTimeout(foo2);
};
 
foo2();

Задача #4

Что будет в консоли и почему?

const foo1 = () => {
    console.log("foo1");
    return Promise.resolve().then(foo1);
};
 
foo1();

См. также