원시 타입의 값 | 객체 타입의 값 | |
---|---|---|
변경 가능 | ❌ | ⭕️ |
저장 | 실제 값 저장 | 참조 값 저장 |
전달 | 값에 의한 전달 | 참조에 의한 전달 |
원시 타입의 값: 원시 값은 변경 불가능한 값.
string |
문자열 데이터 | 'hello' , "안녕" |
---|---|---|
number |
정수, 부동 소수점 숫자 모두 포함 | 42 , 3.14 |
bigint |
아주 큰 정수 | 123456789012345678901234567890n |
boolean |
참(true ) 또는 거짓(false ) |
true , false |
undefined |
값이 할당되지 않은 상태 | undefined |
symbol |
유일무이한 값 | Symbol('id') |
null |
값이 없음을 명시적으로 나타내는 타입 | null |
===
연산자 사용)<aside>
여기서 원시 값 자체는 변경 불가능.
하지만,
변수로 선언되었을 때는 언제든지 재할당을 통해 변숫값을 변경할 수 있다
</aside>
let a = 10;
let b = a; // b는 a의 값을 복사
b = 20;
console.log(a); // 10 (변하지 않음)
console.log(b); // 20
변수 ↔상수
변수: 재할당이 가능한 변수
상수: 재할당이 금지된 변수일 뿐이다
// const 키워드를 사용해 선언한 변수는 재할당이 금지 된 변수일 뿐이다
const o = {};
// const 키워드를 사용해 선언한 변수에 할당한 원시값은 변경 할 수 없다.
// 하지만 const 키워드를 사용해 선언한 변수에 할당한 객체는 변경 가능
o.a = 1;
console.log(o); // {a:1}