大家都知道在计算机内存中js的数据类型分为基础数据类型和引用数据类型
基础数据类型
number / string / boolean / undefined / null这些都是基础数据类型
在计算机内存中分为栈和堆
基础数据类型在计算机中的存储情况如下图:
栈空间相当于一本书的目录
引用数据类型
比如object / function/Array这些都是引用数据类型
引用数据类型在计算机内存中的存储方式如下图:
堆空间相当于一本书写内容的地方
在函数传参时:
基础数据类型都是值传递
引用数据传递的只是引用类型数据的引用,相当于传递了目录,指向的还是原来的地址,因此在函数体里修改数组、对象、都会修改原数据。