자바스크립트에서 값을 복사할 때, 자료형에 따라 복사하는 값이 달라집니다.

얕은 복사와 깊은 복사

실제값을 복사 하는 것을 깊은 복사, 객체의 메모리 주소값을 복사하는 것을 얕은 복사라고 합니다.

경우에 따라 참조형의 깊은 복사가 필요할 때가 있는데요. 깊은 복사가 된 참조형은 객체 안에 객체가 있을 경우에도 원본과의 참조가 완전히 끊어지게 됩니다.

var, let, const 를 중복 선언 허용, 스코프, 호이스팅 관점에서 서로 비교해 주세요.

중복 선언 허용

  • var : 가능
  • const, let : 불가능
    한 스코프에서 같은 변수를 let이나 const로 두 번 선언하면 에러가 발생합니다.

스코프

  • var : 함수 스코프
  • const, let : 블록 스코프

함수를 기준으로만 적용되는 스코프를 함수 스코프, 코드 블록({} 중괄호로 감싸진 부분)을 기준으로 적용되는 스코프를 블록 스코프라고 합니다.

⛔️ 주의
코드 블록이 function 안에 있다면, var는 함수 레벨 변수가 됩니다.

호이스팅

  • var : 함수 스코프를 기준으로 선언되기 이전에도 변수에 접근이 가능합니다.
  • const, let : 선언되기 이전에 사용될 수 없습니다.
profile
2년 차 디자이너로 재직 중입니다. 프론트엔드를 공부 중입니다.

0개의 댓글