const temp = 10 // global context
const old = 5 // global context
function first() {
console.log("FIRST")
function second() {
console.log("SECOND")
}
second() // second functional context
}
first() // first functional context
Zgodnie z zasadą Execution Stack na stos trafią konteksty dla powyższego kodu w takiej kolejności: global context -> first functional context -> second functional context. Natomiast usuwane ze stosu i wykonywane konteksty będą w takiej kolejności: second functional context -> first functional context -> global context
I nie mogę zrozumieć jednego skoro second functional context wykonuje się jako pierwszy to console.log("SECOND") powinien też wykonywać się jako pierwszy co nie miałoby większego sensu. Mógłby mi to rozjaśnić jak to jest, że kod js wykonuje się w odwrotnej kolejności niż usuwanie kontekstów z Execution Stack?