Js中的深拷贝和浅拷贝
JS中的数据类型
基本类型
-
string
-
number
-
boolean
-
null
-
undefined
-
symbol
引用类型
指那些可能由多个值构成的对象,只有一种如下:object。 在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值。
JS中的变量存储方式
栈(stack)
自动分配内存空间,系统自动释放,里面存放的是基本类型的值和引用类型的地址
堆(heap)
动态分配的内存,大小不定,也不会自动释放。里面存放引用类型的值。
基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。 引用类型的值是保存在内存中的对象。JavaScript 不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。 在操作对象时, 实际上是在操作对象的引用而不是实际的对象。
基本类型与引用类型最大的区别实际就是 传值与传址 的区别
值传递:基本类型采用的是值传递。 地址传递:引用类型则是地址传递,将存放在栈内存中的地址赋值给接收的变量。
浅拷贝
被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。即对象的浅拷贝会对“主”对象进行拷贝,但不会复制主对象里面的对象。”里面的对象“会在原来的对象和它的副本之间共享。
浙公网安备 33010602011771号