Explain JavaScript execution context, async behavior, and the event loop · InterviewLane