简述JavaScript的原始类型、引用类型、栈、堆、浅拷贝、深拷贝的概念
- 原始类型(primitive):数字、字符串、布尔值、null、undefined
//不可变类型(immutable):数字、字符串、布尔值、null、undefined
//变量存放在栈中,可直接访问 - 引用类型(object type):数组、函数、对象
//可变类型(mutable):数组、函数、对象
//存放在堆中,生成一个地址指针,并且链接到栈中 - 堆(heap):速度快,先进后出,系统自动分配释放,一级缓存,调用完毕立即释放
- 栈(stack):速度比较慢,先进先出,需申请并指明大小,二级缓存,垃圾回收
- 浅拷贝:类似于为一个数据,分配两个快捷方式
- 深拷贝:类似于把一个数据复制成两份,分别给两个快捷方式