[JS] Primitive type과 Reference type

윤태영 | Taeyoung Yoon·2021년 11월 26일
0

TIL (Today I Learned)

목록 보기
16/53
post-thumbnail

원시 타입(primitive type) 데이터

  • 고정된 저장공간을 차지하는 데이터이다.
  • 데이터 보관함의 한 공간에 값이 직접적으로 들어간다.
  • number, string, boolean, null, undefined 등이 있다.

참조 타입(reference type) 데이터

  • 유동적인 저장공간을 차지하는 데이터이다.
  • '별도의 공간(heap)'에 값이 들어간다. 그 값의 주소가 데이터 보관함의 한 공간에 들어간다.
  • 어떤값을 가리키는 값이라 해서 포인터라 부르기도 한다.
  • 배열(Array), 객체(Object) 등이 있다.

자바스크립트는 변수가 다른 곳으로 들어가거나 이동을 할때 항상 값을 복사한다.
복사되는 값이 직접적인 값일 경우거나 주소값일 경우로 나눌 수있다.

원시 타입 예시

let a = 1;
let b = a;

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

기존 데이터가 변하지 않았다.

let a = 1;
function test(v) { v++ }

test(a);
console.log(a); // 1

함수에서도 마찬가지로 변하지 않았다.

참조 타입 예시

let a = { x: 1 };
let b = a;

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

기존 데이터가 변하였다.

let a = { x: 1 };
function test(v) { v.x++ }

test(a);
console.log(a.x); // 2

함수에서도 기존 데이터가 변하였다.

0개의 댓글