원시값, 참조값의 차이 및 개념

Seungmin Shin·2022년 1월 11일
1

원시값? 참조값?

이번엔 원시값과 참조값에 대해 포스팅을 해보려고 한다.

자바스크립트에서는 변수를 두가지 타입으로 저장할 수 있는데, 원시타입과 참조타입으로 나눌 수 있다.
일단 원시값에 대해 알아보자.

원시 데이터 타입 (Primitive Type)

원시값, 원시 데이터 타입은 객체가 아닌 데이터 타입을 뜻한다.
객체가 아닌 데이터가 무엇을 의미하냐면, 변수에 저장된 실제값에 직접적으로 접근할 수 있는
단순한 데이터라는 뜻이다. 원시타입의 종류는 다음과 같다.

  • Number (숫자)
  • String (문자)
  • Boolean (참,거짓)
  • Null
  • Undefined
  • Biglnt
  • Symbol

예를 들어보자면

let a = 100;
let b = 문자;

이렇게 우리가 변수에 값을 설정하게 되고, 이 값을 직접적으로 가져다가 사용하게 된다.
이것을 원시데이터 타입이라고 볼 수 있겠다.

참조 데이터 타입 (Reference Type)

참조 데이터타입은 쉽게 생각한다면, 원시 데이터 타입이 아닌 모든 타입을 참조 데이터 타입이라고 한다.
다시 말하자면, 메모리에 저장된 객체 라고 할 수 있겠다.

크기가 고정적으로 정해져있지 않고, 값 자체가 직접적으로 변수에 저장될 수도 없으며
변수에는 데이터에 대한 참조만이 저장된다, 그래서 참조 데이터 타입으로 말한다.

객체라는 메모리에 직접적으로 접근할 수 없고, 그 객체에 대한 참조를 조작하는 것이다.
참조 데이터 타입의 종류는 다음과 같다.

  • Object
  • Array
  • Function

원시 데이터와 참조 데이터의 차이?

이 둘의 차이를 파악해보자, 어떤것들이 있을까?

일단은 Immutable(변경불가능) 한가 아닌가의 차이가 있을것이다.
원시값은 변경할 수 없고, 참조값은 변경이 가능하기 때문이다.

그리고 두번째로는 저장되는 값의 성격이다. 성격? 이라고 하는게 맞을지는 모르겠지만
원시값이 변수에 할당된다면 실제값이 저장이 되고,
참조값이 변수에 할당된다면 참조값이 저장된다.

이런 느낌의 차이일까..? 더 공부해봐야겠다.

profile
Frontend Developer

0개의 댓글