JavsScript에는 '없음'을 undifined
와 null
두가지로 나타낼 수 있다.
let foo;
foo // undefined
const obj = {};
obj.prop; // undefined
값이 대입되지 않은 변수 혹은 속성을 사용하려고 하면 undefined
를 반환한다.
let foo = null;
foo // null
const obj = {prop: null};
obj.prop // null
null
은 객체가 없음을 나타낸다.
typeof null // 'object'
typeof undefined // 'undefined'
==
연산자는 비교하는 두 타입을 일치시킨 후 값만 비교하고,
===
연산자는 비교하는 두 타입과 값을 모두 비교한다.
null === undefined; // false
null == undefined; // true
null == 1 // false
null == 'hello' // false
null == false // false
undefined == 1 // false
undefined == 'hello' // false
undefined == false // false
위의 코드를 보면,
==
를 사용해서 undefined
와 null
에 대해서 Null Check를 할 수 있는 것을 알 수 있다.
let a = null;
let b;
let c = '123;
if(a){
// 실행 안됨
}
if(b) {
// 실행 안됨
}
if(c) {
// 실행 됨
}
if
에서 조건으로 작용할 때, 값이 null
과 undefined
라면 false
로 작동한다.