数据类型 :
基本数据类型 : String number undefined boolean null
引用数据类型 : Array object function map set
深拷贝 :
引用数据类型 指向存储地址,浅拷贝 不能重新创建新的 空间,同样变量指向 同一空间,故一方改变 另一方 也改变。
深拷贝 本质 就是开辟新的空间 进行复制。
1. for…in…遍历实现:
// 深拷贝 基础实现
let json = {
name : '小明',
age : 18
}
let nextJson = {}
for(let ajson in json){
console.log(json[ajson])
nextJson[ajson] = json[ajson]
}
2. 扩展运算符 …
在 es6 中 提供了 扩展运算符 … 实现数组深拷贝
// 数组 深拷贝
let f = [1,2,3,4,5]
let z = [...f]
console.log(z)
// 对象深拷贝
let obj = { name : "小明" }
let obj1 = {...obj}
3. 暴力转换 JSON.prase(JSON.stringify(obj))
let obj = JSON.prase.(JSON.stringify({name : "小明"}))
4. object.assign() 对象合并(只能拷贝一层,第一个参数是空对象)
let obj0 = { name : "小明"}
let obj1 = object.assign({},obj0)