2025-09-10 23:39
undefined
- 값이 할당되지 않은 변수의 상태를 나타내는 원시 자료형
- 변수 자체는 존재하지만 그 내용물 값은 비어있는 상태
 - ‘이름표는 붙어있지만 아직 아무것도 담지 않은 텅 빈 상자’
 
 - 의도적으로 값이 없음을 의미하는 NULL과는 다르며, 함수가 값을 반환하지 않거나 객체에 없는 속성에 접근할 때 등 다양한 상황에서 발생
 - 옵셔널 체이닝(
?.)이나 널리쉬 병합 연산자(??)와 같은 문법을 활용하여undefined로 인한 에러를 효과적으로 방지하고 안정적인 코드를 작성 
- 값을 할당하지 않고 선언만 한 변수
 - 객체에 존재하지 않는 프로퍼티에 접근할 때
 - 함수가 아무것도 명시적으로 반환하지 않을 때
 - 함수 매개변수가 전달되지 않았을 때
 
| 구분 | undefined | null | 
|---|---|---|
| 의미 | ”값이 할당되지 않은 상태" | "의도적으로 비어있음을 명시한 상태” | 
| 자료형 | undefined | object (언어 초기 설계의 유명한 실수) | 
| 발생 원인 | 주로 자바스크립트 엔진에 의해 자동 할당 | 주로 개발자가 코드에 직접 할당 | 
| 사용 의도 | 변수가 선언되었으나 아직 값이 없음 | 해당 변수에 값이 없다는 것을 의도적으로 표현 | 
- 방어 코드의 기본, 
if조건문 - 기본값 할당의 달인, 논리 연산자 활용
- OR 연산자 (
||): 왼쪽 값이 ‘falsy’한 값(false, 0, "", null, undefined, NaN)일 경우 오른쪽 값을 반환 - 널 병합 연산자 (
??, Nullish Coalescing Operator): 왼쪽 값이undefined또는null일 경우에만 오른쪽 값을 반환 
 - OR 연산자 (
 - 에러 방지의 끝판왕, 옵셔널 체이닝 (
?.)?.앞의 평가 대상이undefined나null이면 에러를 발생시키지 않고undefined를 반환