Skip to content

JS의 데이터 타입

자바스크립트는 참조타입 데이터와 원시타입 데이터를 가진다.

원시 타입 데이터

  • Number
  • String
  • Boolean
  • null
  • undefined

참조 타입 데이터

  • Object
  • Array

원시타입 데이터는 다른 변수에 값을 복사하면 값이 복사되지만, 참조 타입 데이터는 다른 변수에 값을 복사하면 참조가 복사된다.

const a = 10;
const b = a;

b++;
console.log(a, b); // 10 11

const arr1 = [1, 2, 3];
const arr2 = arr1;

arr2.push(-10);
console.log(arr1, arr2); // [1, 2, 3, 4] [1, 2, 3, 4]

원시 타입과 참조 타입은 선언되면서 메모리가 할당되는 부분은 동일하다.
원시 타입을 가지는 변수를 다른 변수에 할당하면, 이 변수는 새로운 메모리 공간을 할당받아 값을 가진다.
기존에 연결이 끊긴 원시타입 변수는 다음에 가비지컬렉터가 작동했을 시 메모리 할당이 해제된다.

반면에 참조 타입을 가지는 변수를 다른 변수에 할당하면, 새로 할당한 변수는 새로이 메모리 공간을 할당받는 것이 아니라 기존의 변수가 가리키던 메모리 공간을 가리키게 된다.