参考:https://blog.youkuaiyun.com/flyingpig2016/article/details/52895620
https://blog.youkuaiyun.com/zuiziyoudexiao/article/details/72934603
https://www.cnblogs.com/jiangk1214/p/6650957.html
基本数据类型(number、string、boolean、undefined、null)在内存中占固定空间,值存储在栈中。按值访问
引用类型(对象)空间大小不固定,存储在堆中。通过其在栈中的指针指向堆中的地址来访问
基本类型在当前执行环境结束即销毁,引用类型只有当引用它的所有变量都不存在时才被垃圾回收机制回收
关于堆和栈的的区分:
都是运行时内存中分配的一个数据区,但二者存储的数据类型和处理速度有差异。堆用于复杂数据类型分配空间,由于动态分配空间故存取速度慢。栈内主要存放基本类型的变量,存取速度快且数据可以共享(即使多次创建依然只占用一个空间)。
故同等情况下使用基本数据类型优于引用类型。