How does JavaScript work?
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
JavaScript jest wykonywany przez silnik, np. V8 w Chrome i Node.js. Kod synchroniczny wykonuje się na jednym głównym wątku i korzysta z call stacka.
Jeżeli wywołujesz funkcję:
function first() {
second();
}
function second() {
console.log("Hello");
}
first();to stos wygląda w uproszczeniu:
first()
↓
second()
↓
console.log()Po zakończeniu funkcje są zdejmowane ze stosu.
JavaScript może też obsługiwać operacje asynchroniczne, np.:
setTimeout(...)
fetch(...)One nie blokują całego programu. Są obsługiwane przez środowisko przeglądarki albo Node.js, a po zakończeniu ich callback może wrócić do wykonania przez event loop.
Doprecyzowanie:
JavaScript jest single-threaded z punktu widzenia wykonywania kodu JS, ale całe środowisko nie musi działać na jednym fizycznym wątku.
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.