内存空间:代码空间、栈空间和堆空间。
代码空间:
栈空间(调用栈 call stack):存储执行上下文。空间比较小
堆空间(heap):存储引用数据类型。空间比较大。分配内存和内存回收会占用一定时间。
执行上下文:评估和执行 JavaScript 代码的环境的抽象概念。每当 Javascript 代码在运行的时候,它都是在执行上下文中运行。三种类别:全局,函数,Eval 函数。
2-2 分类好处
为什么一定要分“堆”和“栈”两个存储空间呢?所有数据直接存放在“栈”中不就可以了吗?
JavaScript 引擎需要用栈来维护程序执行期间上下文的状态,如果栈空间大了话,所有的数据都存放在栈空间里面,那么会影响到上下文切换的效率,进而又影响到整个程序的执行效率。