얕은 복사란 객체를 복사할 때 원본값과 복사된 값이 같은 참조(=메모리 주소)를 가리키고 있는 것을 말한다. 객체 안에 객체가 있으면 한 개의 객체라도 원본 객체를 참조하고 있다면 이를 얕은 복사라고 한다. 그러므로 한쪽 객체에서 해당 참조 객체를 변경하면 다른 객체의 값도 변경된다.
깊은 복사된 객체는 객체 안에 객체가 있어도 원본과의 참조가 완전히 끊어진 객체를 말한다. 원본과 복사본이 완전히 분리되어 있으므로 한쪽 객체에서 참조 객체를 변경하더라도 다른 객체는 영향을 받지 않는다.
중복 선언 | 재할당 | 스코프 | 호이스팅 | |
---|---|---|---|---|
var | 가능 | 가능 | 함수레벨 스코프 | 함수 스코프를 기준으로 선언되기 이전에도 변수에 접근이 가능 |
let | 불가능 | 가능 | 블록라벨 스코프 | 선언되기 이전에 사용 불가 |
const | 불가능 | 불가능 | 블록라벨 스코프 | 선언되기 이전에 사용 불가 |