大约 1 分钟
深拷贝和浅拷贝问题
1、深拷贝
JSON.parse(JSON.stringify);
深拷贝:在堆中重新分配内存,不同的地址,相同的值,互不影响
可以实现深拷贝。
2、浅拷贝
- 浅拷贝:仅仅是复制了引用,彼此之间的操作会互相影响
//第一个
// let a = [1, 2, 3, 4];
// let b = a.slice();
// console.log(System);
// console.log(System.identityHashCode(b));
// console.log(a === b); false
// a[0] = 5;
// console.log(a);
// console.log(b);
//第二个
// let a = [1, 2, 3, 4];
// let b = a.concat();
// console.log(a === b); false
// a[0] = 5;
// console.log(a);
// console.log(b);
// // //第三个
let a = [[1, 2], 3, 4];
let b = a.slice();
console.log(a === b); false
a[0][0] = 0;
console.log(a);
console.log(b);
3、基本数据类型
ECMAScript中的数据类型可分为两种:
基本类型:undefined,null,Boolean,String,Number,Symbol
引用类型:Object,Array,Date,Function,RegExp等
不同类型的存储方式:
基本类型:基本类型值在内存中占据固定大小,保存在栈内存中
引用类型:引用类型的值是对象,保存在堆内存中,而栈内存存储的是对象的变量标识符以及对象在堆内存中的存储地址
作者:棕小渐
链接:https://juejin.cn/post/6844903608010407944
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。