深拷贝和浅拷贝

直接上结果:

  • Object.assign 双拷贝
    • 若Object里面的属性值是简单类型string,number,则是深拷贝
    • 若 属性值为对象或其他引用类型,则为浅拷贝
  • JSON.parse(JSON.stringify()) 深拷贝

说明:
let a = xxx; //xxx为任意类型 let b = a;
浅拷贝—— 修改b之后,a里面的值也变化
深拷贝—— 修改b之后,a不变。a/b属于独立的个体,互不影响

补充常见的js里的数据类型
简单类型(原始类型):String,Number,Boolean,null,undefined,Symbol(ES6),bigInt(ES10)
引用类型:object(包括object,Array,Date,function)(function是js中的一种类型,隶属于object类型)

js的类型.png

你可能感兴趣的:(深拷贝和浅拷贝)