반응형
원시 자료형
자바스크립트에서 가장 기본적인 데이터 타입, 값 자체를 저장하고 비교
원시 자료형은 값에 의한 전달 방식으로 동작하며, 메모리에서 값이 직접 할당된다
종류
- Number(숫자) : 정수 및 부동소수점 숫자
let num = 42;
- String(문자열) : 텍스트 데이터를 나타냄
let str = "Hello";
- Boolean : 논리적 참/거짓 값
let isTrue = true;
- undefined : 값이 할당되지 않은 변수
let x; // undefined
- null : 존재하지 않는 값 (비어 있음을 명시적으로 나타냄)
let empty = null;
- Symbol : 고유하고 변경 불가능한 값
let sym = Symbol()
특징
- 원시 자료형은 불변(immutable)하다
즉, 값을 변경할 수 없으며, 새로운 값을 할당하면 기존값을 수정하는 것이 아니라 새로운 값이 만들어진다
- 비교는 값 자체를 기준으로 이루어진다
예시
let a = 10;
let b = a; // 값 복사
a = 20
console.log(a); // 20
console.log(b); // 10 (원래 값 유지)
참조 자료형
배열, 객체, 함수 등과 같은 복잡한 데이터 타입
참조 자료형은 참조에 의한 전달 방식을 따르며, 값 자체가 아닌 메모리 주소(참조)를 저장참조 자료형을 복사할 때는 값 자체가 아니라 참조가 복사!!
종류
- Object(객체) : 키-값 쌍으로 이루어진 데이터 구조
let obj = {name : 'yeojin', age : 25}
- Array(배열) : 값들의 순서 있는 리스트
let arr = [1, 2, 3];
- Function(함수) : 실행 가능한 코드 블록
function greet() { consolo.log('hello'); }
특징
- 참조 자료형은 가변(mutable)하다
즉, 원본 데이터 자체를 수정할 수 있다
- 비교는 메모리 주소를 기준으로 이루어지며 두 참조 자료형이 같은 값을 가지고 있더라도,
서로 다른 메모리 위치에 있으면 ===
연산에서 false
를 반환
예시
let obj1 = { name : "Bob" };
let obj2 = obj1 // 참조 복사
obj1.name = "Yeojin";
console.log(obj1.name); // Yeojin
console.log(obj2.name); // Yeojin (참조가 같으므로 같이 변경)
원시 자료형과 참조 자료형의 차이점
분류 | 원시 자료형(Primitive Type) | 참조 자료형(Reference Type) |
메모리 저장 방식 | 값 자체 저장 | 값이 저장된 주소(참조) 저장 |
변경 가능성 | 불변 (값을 변경할 수 없음) | 가변 (값을 변경할 수 있음) |
비교 방식 | 값 자체를 비교 | 메모리 주소(참조)를 비교 |
값 전달 방식 | 값에 의한 전달 (복사됨) | 참조에 의한 전달 (참조가 복사됨) |
반응형
'FE > JavaScript' 카테고리의 다른 글
JS | for...in 과 for...of (0) | 2024.10.29 |
---|---|
JS | var, let, const 차이 (0) | 2024.09.24 |
JavaScript란? (0) | 2024.09.24 |