拷贝:准备一个新的数组/对象,把旧的内值复制过来
**********浅拷贝:把数组/对象第一层的值,复制到新的数组/对象中**********
**********浅拷贝使用场景?:修改数组/对象,影响另一个数组/对象,'砍断'它们的联系**********
**********如何实现浅拷贝?:for/for...in/扩展运算符/object.assign()对象用**********
①思考下面问题,希望用5秒钟作答
let a=100
let b=a
a=50
console.log(b) //==>100
console.log(a) //==>50
//基础类型=赋值,值的复制
②思考下面问题,希望用10秒钟作答01
let arr=['小明','小张']
let orr = arr
arr.push('onceweb')
console.log(orr) //==>["小明", "小张", "onceweb"]
console.log(arr) //==>["小明", "小张", "onceweb"]
//引用类型=赋值,内存地址赋值
②思考下面问题,希望用10秒钟作答02
let arr=['小明','小张']
let orr = [] //新数组
for (let i=0;i<arr.length;i++){
orr.push(arr[i])
}
arr.push('onceweb')
console.log(orr) //==>["小明", "小张"]
console.log(arr) //==>["小明", "小张", "onceweb"]
③思考下面问题,希望用10秒钟作答
let obj={
name:'小明',
age:25
}
let objonce=obj
obj.name='onceweb'
console.log(objonce.name) //==>onceweb
console.log(obj.name) //==>onceweb
//引用类型=赋值,内存地址赋值
④对象拷贝01
let obj={
name:'小明',
age:25
}
objonce = {} //新申请一个空间对象
for(let key in obj){
objonce[key] = obj[key]
}
obj.name = "onceweb"
console.log(objonce.name) //==>小明
console.log(obj.name) //==>onceweb
⑤对象拷贝02==》es6
let obj={
name:'小明',
age:25
}
objonce = {...obj} //新对象赋值---扩展运算符
obj.name = "onceweb"
console.log(objonce.name) //==>小明
console.log(obj.name) //==>onceweb
⑥对象拷贝03==》es5
let obj={
name:'小明',
age:25
}
objonce = Object.assign({},obj) //新对象赋值---扩展运算符
obj.name = "onceweb"
console.log(objonce.name) //==>小明
console.log(obj.name) //==>onceweb