JavaScript

Undefined

lshjju 2026. 2. 15. 16:31

나타나지 말아야 할 것 같으면서도 가장 자주 마주하게 되는 데이터 타입인 undefined에 대해 알아보겠습니다.

undefined는 말 그대로 "정의되지 않았다"는 뜻으로, 자바스크립트에서 값이 할당되지 않은 상태를 나타내는 아주 특별한 값입니다.


1. 언제 undefined가 나타날까요?

개발자가 직접 이 값을 넣기보다는, 자바스크립트 엔진이 "여기에 값이 없네?"라고 판단할 때 자동으로 부여하는 경우가 대부분입니다.

  • 변수 선언 후 값을 넣지 않았을 때: 상자(변수)만 만들고 내용물(값)을 채우지 않은 상태입니다.
  • 존재하지 않는 객체 속성에 접근할 때: 없는 서랍을 열려고 할 때 발생합니다.
  • 함수에서 return 문이 없을 때: 함수가 실행은 되었지만 아무런 결과물도 돌려주지 않았을 때입니다.
  • 함수 호출 시 파라미터에 값을 전달하지 않았을 때: 재료를 넣지 않고 기계를 돌린 상황입니다.

2. 실전 예제 코드: "undefined의 발견"

JavaScript
 
// 1. 선언만 된 변수
let name;
console.log(name); // undefined

// 2. 존재하지 않는 속성
const user = { id: 1 };
console.log(user.age); // undefined

// 3. 반환값이 없는 함수
function sayHi() {
    console.log("안녕!");
}
let result = sayHi();
console.log(result); // undefined

// 4. 파라미터 누락
function sum(a, b) {
    console.log(a, b);
}
sum(10); // 10, undefined

3. undefined vs null (한눈에 비교)

많은 입문자가 가장 헷갈려 하는 부분입니다.

두 값 모두 "값이 없음"을 뜻하지만, 의도가 다릅니다.

구분 undefined null
의미 값이 아직 정해지지 않음 (미정) 값이 없음을 명시적으로 표현 (비어있음)
할당 주체 자바스크립트 엔진이 자동으로 할당 개발자가 의도적으로 할당
typeof 결과 "undefined" "object" (유명한 설계상 오류)
비유 아예 아무것도 없는 빈 공간 빈 상자를 가져다 놓은 상태

4. undefined 처리 팁

undefined는 Falsy 값이기 때문에 조건문에서 데이터 존재 여부를 확인할 때 매우 유용합니다.

JavaScript
 
let data;

// data가 undefined라면 이 조건문은 실행되지 않습니다.
if (data) {
    console.log("데이터가 있습니다.");
} else {
    console.log("데이터가 준비되지 않았습니다."); // 실행됨
}

학습 정리

  • **undefined**는 자바스크립트가 자동으로 부여하는 "값이 없는 상태"의 기본값이다.
  • 변수를 선언만 하거나, 객체에 없는 값을 찾을 때 주로 마주친다.
  • 의도적으로 "비어있다"는 것을 나타내고 싶을 때는 undefined 대신 **null**을 사용하는 것이 좋은 관례이다.

자바스크립트의 공백과 같은 존재, undefined를 완벽히 이해하셨습니다!

'JavaScript' 카테고리의 다른 글

ECMAScript  (0) 2026.02.15
-Null  (0) 2026.02.15
Truthy and Falsy  (0) 2026.02.15
JS coding rule and style guide  (0) 2026.02.15
JS I/0  (0) 2026.02.15