[TIL]210310

박성진·2021년 3월 10일

원시 자료형

자바스크립트에서 원시 타입의 데이터는 객체가 아니면서 method를 가지지 않는 6가지의 타입
string, number, bigint, boolean, undefined, symbol, (null)을 말합니다.

원시 자료형의 보관함인 변수에는 하나의 원시 자료형만 담을 수 있습니다.
변수에는 하나의 데이터만 담습니다.

ex)
const num1 = 123;
const num2 =123456;
// 이렇게 변수에는 데이터의 크기와는 관계 없이 하나의 데이터만 담을 수 있습니다.
// 원시 자료형은 값 자체에 대한 변경이 불가능 하지만, 변수에 다른 데이터를 할당 할 수는 있습니다.
"hello world!"
"hello codestates!"
// "hello world!" 와 "hello codestates!"는 모두 변경할 수 없는 고정된 값입니다.

let word = "hello world!" 
word = "hello codestates!" 
// 하지만, word라는 변수에 재할당을 하여 변수에 담긴 내용을 변경은 가능합니다.

const num1 = 123;
num1 = 123456789; // 에러 발생
// const 키워드로 선언하면, 재할당은 불가합니다.

참조 자료형

자바스크립트에서 원시 자료형이 아닌 모든 것은 참조 자료형입니다. 배열([])과 객체({}), 함수(function(){})가 대표적입니다.

변수에는 특별한 데이터 보관함을 찾아갈 수 있는 주소가 담겨져 있고, 이 주소를 따라가보면 특별한 데이터 보관함을 찾을 수 있는데, 이 특별한 데이터 보관함은 동적으로 변합니다. 이런 특별한 데이터 보관함을 heap라고도 부릅니다.

원시 자료형과 참조 자료형의 특징

  • 원시 자료형이 할당될 때에는 변수에 값(value) 자체가 담기고, 참조 자료형이 할당될 때는 보관함의 주소(reference)가 담깁니다.
  • 그래서 참조 자료형은 기존에 고정된 크기의 보관함이 아니라, 동적으로 크기가 변하는 특별한 보관함을 사용할 수 있습니다.

0개의 댓글