원시자료형과 참조자료형

Southbig·2021년 5월 30일
0

원시자료형 (primitive type data)

하나의 변수에 하나의 값을 할당 하는 것.
객체가 아니면서 method를 가지지 않는 6가지의 타입 - string, number, bigint, boolean, undefined, symbol, (null)

*원시타입데이터는 각 변수간에 원시타입을 복사 할 경우, 데이터 값이 복사되기 때문에 기존 데이터에 영향이 안감.

ex)
let a = 1
b = a
b = 2
a; // 1

원시자료형은 값 자체에 대한 변경이 불가능 하지만 변수에 다른데이터를 할당 할 수 있다.

ex)
let a = 123
a = 12345 // let 키워드는 재할당 가능

ex)
const a = 123
a = 12345 // const 키워드는 재할당 불가능 에러 발생

참조자료형 (reference type data)

하나의 변수에 값대신 주소를 입력 (heap)
주소는 heap이라는 공간에 연결 -> 주소 값에 연결
배열([])과 객체({}), 함수(function(){})가 대표적

참조타입은 주소를 복사하기 때문에 복사한 데이터에서 원소를 변경하게 되면 주소안의 데이터가 변경이 되기 때문에 기존의 데이터에도 영향이 간다.

ex)
let e = [10,20];
let f = e;
f[0] = 50; // 변수 e 안의 배열 요소 변경
e; // [50,20]

  • 추가
    Brigint - Number 원시 값이 안정적으로 나타낼 수있는 최대치인 2의 53승 -1보다 큰 정수를 표현 할 수 있는 내장 객체(아주 큰수 다루.. 는 ? 찾아보래서 찾아봤는데 이건 아직 먼지 모르겠다.)
    null - 원시타입과 거의 같게 사용, 하지만 원시타입은 아님.
    stak overflow - 스텍이 할당된 공간보다 많은 공간을 차지하면 발생하는 에러.

원시, 참조자료형의 특징

  1. 원시 자료형이 할당 될때는 변수에 값(valu) 자체가 담긴다.
  2. 참조 자료형이 할당 될때는 보관함의 주소(reference)에 담긴다.
    (참조자료형은 기존의 고정된 크기의 보관함이 아니라, 동적으로 크기가 변하는 heap에 보관됨.)
profile
즐겁게 살자

0개의 댓글