JavaScript에서 원시 값(primitive, 또는 원시 자료형)이란 객체가 아니면서 메서드도 가지지 않는 데이터입니다. 원시 값에는 7종류, string, number (en-US), bigint (en-US), boolean, undefined, symbol, 그리고 null이 존재합니다.
자바스크립트에서는 Primitive Type (원시 타입) 그리고 Object/Reference Type로 (객체 타입) 데이터 타입이 구분이 가능하다.
우선 Primitive Type부터 살펴보면, 객체가 아니면서 메서드를 가지지 않는 데이터로 총 7가지 종류가 존재한다.
그리고 원시 타입의 특징은 값이 변경이 불가능하다. 이게 도대체 무슨 소리인가?
a 변수에 'hello' 값을 할당하면 memory cell에 저장이 되고 그리고 그 메모리 값은 변경이 불가능한 값이 된다. 만약, a = 'bye'로 재할당을 하면 어떻게 될까?
기존에 있던 'hello' 메모셀은 그대로 유지가 되고, 새로운 메모리셀에 'bye'가 재할당이 된다. 그리고 앞으로 a는 'hello' 메모리셀 아닌, 'bye' 메모리 셀을 참조한다.
원시값은 기본 자료형을 의미한다. Number, String, Boolean, Null, Undefined, Symbol, BigInt 총 7종류가 존재한다. 우리가 A라는 변수에 값을 할당하면 메모리 공간에 저장이 되고, 앞으로 값은 변경이 불가능하다. 다만, A변수에 값을 재할당할시, 새로운 메모리셀에 복사가 되어 기존에 있던 메모리셀은 데이터를 그대로 유지가 된다. 또한 A변수는 앞으로 새로 복사된 메모리셀을 참조한다.