let df = 6
let fg = df
df = 7
console.log(df, fg) // 7, 6
let fst = [1,2,3]
let scd = fst
fst[0] = 5
console.log(fst) // [5,2,3]
console.log(scd) // [5,2,3]
깊은 복사 : 기본 자료형 값(String, Number, Boolean)을 복사할 때는 깊은 복사가 된다. 깊은 복사란 값을 복사 한 뒤 각각 완전히 독립적인 객체가 되는 것을 의미한다.
얕은 복사 : 나머지 자료형을 복사할 때는 방법은 같더라도 얕은 복사가 된다. 얕은 복사란 깊은 복사처럼 똑같은 값을 각각 메모리에 저장하는 것이 아니라, 메모리를 공유하는 것이다. 복사할 때 값을 복사하는 것이 아니라, 메모리의 위치를 복사하는 것이다. 그래서 위 예시에서 변수 fst를 수정하든, scd를 수정하든 두 변수의 값이 같을수 밖에 없다.