모든 것이 아니지만 다양한 모든 것: undefined 이해하기
소개
JavaScript에서 undefined는 특별한 값으로, 변수가 할당되지 않았거나 함수가 인수 없이 호출될 때 나타납니다. 이는 정보가 없음이나 값이 아직 할당되지 않았음을 나타냅니다.
undefined의 특성
- primitive 값: undefined는 number, string, boolean과 같은 JavaScript의 기본 데이터 유형입니다.
- immutable: undefined 값은 변경할 수 없습니다.
- 암묵적 형 변환: undefined는 다른 데이터 유형으로 암묵적으로 형 변환될 수 있습니다. 예를 들어, 숫자에 더하면 0으로, 문자열에 더하면 “undefined” 문자열로 변환됩니다.
- 엄격한 비교연산자: undefined === undefined는 true입니다. 그러나 undefined == null은 false입니다(null과 undefined는 다른 값이기 때문임).
undefined와 null의 차이점
undefined와 null은 비슷한 개념이지만 몇 가지 중요한 차이점이 있습니다.
- 의미: undefined는 변수가 할당되지 않았음을 나타내는 반면, null은 의도적으로 할당된 “없음” 값을 나타냅니다.
- 형식: undefined는 primitive 값인 반면, null은 object 값입니다.
- 암묵적 형 변환: undefined는 다른 데이터 유형으로 암묵적으로 형 변환될 수 있는 반면, null은 어떤 데이터 유형으로도 암묵적으로 형 변환될 수 없습니다.
undefined의 사용 사례
undefined는 여러 가지 상황에서 사용됩니다.
- 변수 선언: 변수를 선언하지만 아직 할당하지 않은 경우 undefined 값을 가집니다.
- 함수 호출: 인수 없이 함수를 호출하면 매개변수는 undefined 값을 가집니다.
- 프로퍼티 접근: 객체의 존재하지 않는 프로퍼티에 접근하면 undefined 값을 반환합니다.
- 오류 처리: 오류 또는 예외가 발생하면 undefined 값이 종종 결과값으로 반환됩니다.
undefined 처리하기
undefined 값을 처리하는 데는 여러 가지 방법이 있습니다.
- 삼항 연산자: undefined 값인지 확인하려면 삼항 연산자(?:)를 사용할 수 있습니다.
- 존재 연산자: 존재 연산자(??.)는 변수가 undefined인 경우 백업 값을 반환합니다.
- 조건부 할당: 조건부 할당 연산자(??=)는 변수가 undefined인 경우 값을 할당합니다.
결론
undefined는 JavaScript에서 중요한 개념으로, 변수의 초기화 상태나 값이 없는 것을 나타냅니다. undefined와 null의 차이점을 이해하고 올바르게 사용하면 코드의 품질과 유지 관리성을 높일 수 있습니다.