Markdown在线编辑器 - www.MdEditor.com
造成问题,当两个变量指向同一个地址时,引起数据的同步修改
<script>
window.onload =function(){
var arr1 =[1,2,3,4,5];
//浅拷贝
var arr2 = arr1;
arr2[2]=100;
console.log(arr1);//[ 1, 2, 100, 4, 5 ]
console.log(arr2);//[ 1, 2, 100, 4, 5 ]
//深拷贝
var arr3 =[];
for(let i in arr1){
arr3[i]= arr1[i];
}
arr3[2]=555;
console.log(arr1);//[ 1, 2, 100, 4, 5 ]
console.log(arr3);//[ 1, 2, 555, 4, 5 ]
}
</script>
<script>
window.onload =function(){
setTimeout(()=>{
console.log(‘1级宏事件1‘);
newPromise((resolve)=>{ resolve()})
.then(()=>{
console.log(‘2级微事件3‘);
})
});
console.log(‘主事件1‘);
newPromise((resolve)=>{
console.log(‘主事件2‘);
resolve()
}).then(()=>{
console.log(‘1级微事件1‘);
setTimeout(()=>{console.log(‘2级内宏事件2‘)});
}).then(()=>{
console.log(‘1级微事件2‘)
})
}
</script>
输出:
主事件1
主事件2
1级微事件1
1级微事件2
1级宏事件1
2级微事件3
2级内宏事件2
原文:https://www.cnblogs.com/Zxq-zn/p/11742122.html