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
를 반환