Every time when a function run it'll be push into the call stack and put on the top, you can think call stack is Someth ing like a heap ... Javascirpt have only one call stack.
In the "Picture", Main () Get call first, then put into the "Call stack";
Second, Printsquare (), put into the call stack;
Third, inside Printsquare () call Suqare () function, so put to call stack;
Fourth, inside Square () function, multiply () function get call ....
--------------------------
When function is return or done, the function would be poped the on the call stack:
So, multiply () function ruturned, so pops up from the call stack;
Then Square ();
Then inside Printsquare () function, Console.log () Funciton get call, so need to push intot the call stack.
After that, Console.log () pops up;
Printsquare () pop up;
Finally main () pop up;
You can see the "Call stack" from the Chrome dev tool ' s source tab while you use ' debugger '.
[Javascript] Call Stack