undefined, null 의 차이점

Daniel·2023년 4월 25일
0

들어가며

undefined나 null 은 어느 자료형에 속하지않고 자기자신의 값만 포함하는 자신만의 자료형을 형성한다.
JavaScript에는 '없음'를 나타내는 값이 두 개 있는데, 바로 null와 undefined입니다. 두 값의 의미는 비슷하지만, 각각이 사용되는 목적과 장소가 다릅니다.
아래에서 자세히 알아보자

undefined

undefined값이 할당되지 않은 상태를 나타낼 때 사용한다.

  • 변수는 선언했지만, 값을 할당하지 않은 상태
let a;
console.log(a); // undefined
console.log(typeof a); // undefined

null

자바스크립트 이외에 언어의 null과 성격이 다르다.
자바스크립트에서의 null존재하지 않는(nothing) 값, 비어있는(empty) 값, 알 수 없는(unknown) 값을 나타내는 데 사용한다.
자바그크립트는 대소문자를 구분하므로 null || Null || NULL 모두 다르다.
프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시(의도적 부재)할 때 사용한다.
변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더이상 참조하지 않겠다는 의미이다.
이는 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거하는 것을 의미하며, JS엔진은 누구도 참조하지 않는 메모리공간에 대해 가비지 콜렉션 수행

let a = null;
console.log(a); // null
console.log(typeof a); // object
  • 함수에서의 null
    함수가 유효한 값을 반환(return)할 수 없는 경우 명시적으로 null을 반환하기도 한다.
// HTML문서에 h1 요소가 없으면, null반환
let element = document.querySelector('h1');
console.log(element); // null

null, undefined Check

null === undefined; // false
null == undefined;  // true
null == 1       // false
null == 'hello' // false
null == false   // false
undefined == 1       // false
undefined == 'hello' // false
undefined == false   // false

-------------------------------------------------

// 아래 세 개의 식은 완전히 같은 의미입니다.
input !== null && input !== undefined;

input != null;
input != undefined;

--------------------------------------------------

// 아래 세 개의 식은 완전히 같은 의미입니다.
input === null || input === undefined;

input == null;
input == undefined;

위 코드로 알 수있는 점은 == 을 이용하면 null과 undefined 가 같이 체크되는구나..!

출처(참고문헌)

profile
응애 나 애기 개발자

0개의 댓글