자바 스크립트의 변수 타입에는 크게 Primitive type(원시타입)과 Reference Type(참조타입)으로 나누어져 있다.
원시타입(Primitive type)의 변수들은 데이터 복사가 일어날 때 메모리 공간을 새로 확보하여 독립적인 값을 저장하며, 참조 타입은 메모리에 직접 접근이 아닌 메모리의 위치(주소)에 대한 간접적인 참조를 통해 메모리에 접근하는 데이터 타입이다.
객체가 아니면서 method를 가지지 않는 6가지의 타입이 있다.
원시 자료형은 모두 “하나”의 정보, 즉, 데이터를 담고 있다.
string, number, bigint, boolean, undefined, symbol, null
number : 3.141592
string : ‘Reve’
boolean : true & false
undefined : 변수가 정의되지 않았거나 값이 없다.
null : 의도적으로 비어있음을 표현하기 위해 null 이라는 것이 들어있다.
symbol
✅ 원시 타입은 값 자체를 복사하기 때문에 원본 데이터의 값이 바뀌더라도 기존 데이터의 값을 유지한다
자바스크립트에선 원시 자료형이 아닌 모든 것은 참조 자료형이다.
참조형은 원시형 데이터의 집합이다.
배열([])과 객체({}), 함수(function(){})가 대표적이다.
참조 자료형은 기존에 고정된 크기의 보관함이 아니다.
참조 자료형을 변수에 할당할 때는 변수에 값이 아닌 주소를 저장한다.
동적으로 크기가 변하는 데이터를 보관하기위해 변수가 아닌 다른곳에 데이터를 저장하고 변수에는 그 주소만 할당한다.
배열 – Array : [0,1,2,3,4]
객체 – Object {name : “reve”, age : 16}
✅ 참조 타입은 주소 값을 참조하기 때문에, 원본 데이터의 값이 바뀌면 복사한 데이터의 값도 변경된다.