JavaScript执行环境与执行栈是如何详细运作的?