JavaScript 기본 | 값 | undefined & null

Faithful Dev·2025년 5월 20일

프리스쿨

목록 보기
23/25

undefined

정의

"값이 할당되지 않은 상태"를 나타낸다.
자바스크립트 엔진이 자동으로 부여하는 값이다.

주로 발생하는 상황

변수 선언만 했을 때

let x;
console.log(x); // undefined

함수에서 return을 생략했을 때

function doSomething() {}
console.log(doSomething()); // undefined

객체에서 존재하지 않는 속성을 접근할 때

let user = { name: "Alice" };
console.log(user.age); // undefined

배열에서 비어 있는 인덱스를 접근할 때

let arr = [1, , 3];
console.log(arr[1]); // undefined

매개변수가 전달되지 않았을 때

function greet(name) {
  console.log(name);
}
greet(); // undefined

typeof 결과

typeof undefined; // 'undefined'

null

정의

"명시적으로 값이 없음"을 나타낸다.
즉, 프로그래머가 의도적으로 "비어 있음"을 표현할 때 사용한다.

주로 사용하는 상황

초기값으로 명시적인 빈 상태 설정

let currentUser = null;

의도적으로 참조를 끊을 때

someElement = null; // GC 대상이 되도록

객체를 나중에 채울 예정임을 표현

let config = null; // 나중에 설정

typeof 결과

typeof null; // 'object' ← JS 초기 설계 실수

undefined vs. null 비교

항목undefinednull
의미값이 정의되지 않음명시적 빈 값
누가 설정?자바스크립트 엔진개발자
typeof 결과'undefined''object' ← 설계 오류
사용 의도초기화되지 않은 상태의도적인 "값 없음"
사용 시기변수 선언만 한 경우 등비어있음을 명시할 필요가 있을 때
JSON.stringify제거되지 않음유지됨 (null 출력)

사용 시 주의사항

  • undefined암묵적이며 엔진이 부여하는 값이므로, 직접 할당하는 건 권장되지 않는다.
let x = undefined; // ❌ 권장 X
let x = null; // ✅ 명시적 빈 값
  • 비교 시 느슨한 동등 (==) 비교는 혼란을 유발할 수 있다:
null == undefined // true
null === undefined // false

→ 실제 개발에서는 항상 ===을 사용하는 것이 좋다 (엄격한 비교).


요약

의미누가 설정함사용 목적typeof
undefined값이 없음 (초기 상태)JS 엔진아직 할당되지 않음'undefined'
null명시적 빈 값개발자값이 없음을 표현'object'
profile
Turning Vision into Reality.

0개의 댓글