본문 바로가기
☁️ 구름 X kakao DeepDive/☁️ HTML CSS JS

[JavaScript] undefined 과 null 의 차이점

by 뽀짜꼬 2025. 1. 12.
728x90
반응형

✔️ 공통점

  • 둘다 원시 자료형 (primitive)
  • undefined 타입은 undefined 타입이 유일, null 값은 null 값이 유일

✔️ 차이점

  • 개발자의 의도가 있느냐, 없느냐의 차이이다!

✔️ undefined (개발자의 의도 X)

: “아무 값도 할당받지 않은 상태”를 의미

  • var 키워드로 선언한 변수는 호이스팅으로 올라간 후 undefined로 초기화됨.
    그 이후 인터프레터가 해당 소스에 도달했을 때 할당한 값이 들어가게 됨.
console.log(a); //undefined
var a = 5;
  • 변수를 선언한 이후 값을 할당하지 않은 변수를 출력하면 undefined가 반환된다.
let hello;
console.log(hello); //undefined

이렇게 undefined는 개발자가 의도적으로 할당하기 위한 값이 아닌, 자바스크립트 엔진이 변수를 초기화 할 때 사용한다.

그래서 개발자가 의도적으로 undefined 를 할당하는것은 권장되지 않는다.

 

그래서! 변수에 의도적으로 값이 없다고 할 때는 null 을 사용한다.

✔️  null (개발자 의도 O)

: ‘비어있는, 존재하지 않는 값’을 의미

  • null은 NULL, Null과 다르다
  • 의도적으로 변수에 값이 없다는 것을 명시하기 위해 undefined가 아닌 null 을 사용한다.
  • null을 할당하면 변수가 이전에 참조하던 값을 명시적으로 참조하지 않겠다고 하는 것이므로,
    자바스크립트 엔진이 이 변수의 메모리 공간에 대해 가비지 콜렉션을 수행한다.

( * 가비지 콜렉션 : 더이상 사용하지 않는 메모리를 자동으로 정리하는 것 )

728x90
반응형