undefined나 null 은 어느 자료형에 속하지않고 자기자신의 값만 포함하는 자신만의 자료형을 형성한다.
JavaScript에는 '없음'를 나타내는 값이 두 개 있는데, 바로 null
와 undefined
입니다. 두 값의 의미는 비슷하지만, 각각이 사용되는 목적과 장소가 다릅니다.
아래에서 자세히 알아보자
undefined
는 값이 할당되지 않은 상태
를 나타낼 때 사용한다.
let a;
console.log(a); // undefined
console.log(typeof a); // undefined
자바스크립트 이외에 언어의 null
과 성격이 다르다.
자바스크립트에서의 null
은 존재하지 않는(nothing) 값, 비어있는(empty) 값, 알 수 없는(unknown) 값
을 나타내는 데 사용한다.
자바그크립트는 대소문자를 구분하므로 null || Null || NULL
모두 다르다.
프로그래밍 언어에서 null
은 변수에 값이 없다는 것을 의도적으로 명시(의도적 부재)할 때 사용한다.
변수에 null
을 할당하는 것은 변수가 이전에 참조하던 값을 더이상 참조하지 않겠다는 의미이다.
이는 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거하는 것을 의미하며, JS엔진은 누구도 참조하지 않는 메모리공간에 대해 가비지 콜렉션 수행
let a = null;
console.log(a); // null
console.log(typeof a); // object
// HTML문서에 h1 요소가 없으면, null반환
let element = document.querySelector('h1');
console.log(element); // null
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 가 같이 체크되는구나..!