面试题1:深拷贝
//=>浅克隆:只复制对象或者数组的第一级内容
//=>深克隆:克隆后数组的每一级都和原始数组没有关联
//那么请说出,浅克隆都怎么去实现,如何实现深度克隆
let obj = {
a: 100,
b: [10, 20, 30],
c: {
x: 10
},
d: /^\d+$/
};
let arr = [10, [100, 200], {
x: 10,
y: 20
}];
/*
let clone = JSON.parse(JSON.stringify(obj))
这种方式存在一些问题:某些格式的数据在转换为JSON字符串和JSON对象的时候会出现问题
正则-》空对象
BigInt-》会报错
日期-》转为字符串后就转不回来了
Symbol/undefined/function -》直接没有了
*/
function cloneDeep(obj){
// 验证类型
if (obj === null