ECMAScript中,变量分为基本类型值引用类型值,两者的区别如下:

一、 保存方式不同

  • 基础类型值,长度不可变,保存在“栈”中
  • 引用类型值,长度可变,保存在“堆”中

二、 复制方式不同

  • 基础类型值:在“栈”中创建副本,再把新值分配到新的位置上,如下图所示,

基础类型值的复制过程

  • 引用类型值:在“栈”中创建副本,这个副本实际上是一个指针,指向“堆”中的一个对象,如下图所示,

引用类型值的复制过程