2025-09-10 23:39

Tags: 프로그래밍 기초 자바스크립트

undefined

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