배열에서 사용 가능,
객체에서 사용 가능
let ar = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];
let ar2 = ar; (얉은 복사 - 주소(위치)만 복사)
let ar2 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]; (깊은 복사)
배열 새롭게 하나 만들기. 모양, 내용물은 똑같지만 완전 다른 위치에 넣어둠
근데 좀 귀찮네...? 안에 뭐가 들어있을지 모른다면?
let ar2 = [];
for(let i = 0 ; i < ar.length; i++){
ar2.push(ar[i]);
}
복잡하네..? 그래서 나온게 바로
전개 연산자!!
let ar = [ 10, 20, 30 ];
let ar2 = [ ...ar ]; 완전 똑같은 배열을 똑같이 만들 수 있다
let book = { title:'대모험', page:20, author:'홍길동' } 주소 A00
let book2 = book; 주소 A00
book2.title = "홍길동전"
그럼 둘다 바뀜. 주소가 똑같으니까
let book2 = {title:book.title, page:book.page, author:book.author} 이렇게 해도되는데 귀찮;;
let book2 = { ...book , price:100 , title:'홍길동전'}; 주소 B00
let book2 = { title:'대모험', page:20, author:'홍길동', price:100 , title:'홍길동전'}
객체 안에서 key값은 중복될 수 없기때문에 뒷쪽에 있는 title이 덮어 써버린다.(title:'홍길동전')
let ar2[0] = 100;
// ar2 : [100, 20, 30, 40, 50, 60, 70, 80, 90, 100]
// ar : [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
let ar = []
let ar2 = JSON.parse(JSON.stringify(fr))