본문 바로가기
카테고리 없음

JavaScript 타입(2)

by 이히힣 2022. 7. 13.

[원시 타입 데이터]

 

string, number, bigint, boolean, undefined, symbol, (null)

 

  • 데이터 크기와 관계없이 하나의 값(데이터)을 저장한다.
  • 과거에는 데이터 저장소(메모리)의 용량이 제한이 있었기 때문에  하나의 값만 저장했다.
  • 객체가 아니면서 method를 가지지 않는 데이터이다.
  • 값 자체에 대한 변경이 불가능(immutable)하다.
  • 변수에 다른 데이터를 할당할 수는 있다.

 

let a = 5;
let b = a;
b = 3;

// a의 값은?
// a = 2  원시 자료형은 자료의 수정이 불가능

 

 

 

 

 

[참조 타입 데이터]

 

원시 자료형이 아닌 모든 것. 배열([])과 객체({}), 함수(function(){}) etc..

 

  • 값을 저장하는 대신 데이터가 담긴 저장소의 주소를 저장한다.
  • 사이즈의 크기를 조절할 수 있다. (동적(dynamic)으로 변한다)

 

let a = {foo : 5};
let a = b;
b.foo = 3

// a.foo의 값은?
// a.foo = 3  참조자료형은 동적으로 크기가 변함.
// a.foo = 5 라고 할당해 주었지만 a = b 라 재할당 해주면서 값이 바뀜.

 

 

 


   ⭐️⭐️⭐️중요⭐️⭐️⭐️

 

  • 원시 자료형이 할당될 때는 변수에 값(value) 자체가 담긴다.
  • 참조 자료형이 할당될 때는 보관함의 주소(reference)가 담긴다.
  • 원시 자료형은 기존에 고정된 크기의 보관함을 이용한다.
  • 참조 자료형은 동적으로 크기가 변하는 보관함을 이용한다.