堆栈:一般说的是内存堆(分配内存的地方)调用栈(代码执行的地方,也是一种数据结构,被用来存储代码运行时创建的所有执行上下文)。
    JavaScript 是一门解释型语言,没有编译阶段(即不需要编译成其它语言,可以直接执行),所以它是动态类型;TypeScript 在运行前需要先编译为 JavaScript,所以 TypeScript 是静态类型。
    JavaScript是一门单线程语言。意味着它只有一个调用栈,同一时间只能做一件事情。
    事件循环的顺序,决定js代码的执行顺序。进入整体代码(宏任务)后,开始第一次循环。接着执行所有的微任务。然后再次从宏任务开始,找到其中一个任务队列执行完毕,再执行所有的微任务。

    • macro-task(宏任务):包括整体代码script,setTimeout,setInterval
    • micro-task(微任务):Promise,process.nextTick