Skip to main content

타입

var, let, const

var는 ES6 이전, let과 const는 ES6 이후 생겨난 선언 타입이다.

var

var num = 1;
var num = 2;
var num = 3;
  • 재선언 및 재할당이 가능하다.

  • ES6부터 규모가 큰 프로젝트일수록 오류 발생 가능성도 높아져서 var 사용은 권장되지 않는다.

let

let num = 1;
let num = 2; // error
num = 2;
  • 재선언이 불가능하며 재할당이 가능하다.

const

let num = 1;
let num = 2; // error
num = 2; // error
  • 상수이며 재선언 및 재할당이 불가능하다.


값과 참조의 차이

원시 Primitive

  • 값이 메모리 셀 안에 바로 들어가 있다.

  • 변수가 메모리 자체를 가리키고 있다.

Copy by Value

  • 원시 타입은 값 자체가 복사되어서 할당된다.
let a = 1;

let b = a; // 1

b = 2; // b === 2, a === 1

객체 Object

  • 객체가 들어있는 메모리 주소를 보관한다.

  • 메모리 주소에 참조값, 즉 메모리 주소가 변수에 들어있다.

Copy by Reference

  • 객체 타입은 참조값(메모리 주소)가 복사되어서 할당된다.
let apple = {
name: 'apple',
};

let orange = apple;

apple.name = 'banana';
// apple.name === banana
// orange.name === banana