null과 undefined

ES
비고
null과 undefined는 == 로 검사하면 동일하다. JSON에 null은 포함되지만, undefined는 포함되지 않음.
Tags
compare
 
 

의미적 차이

  • undefined : 할당만 되고 값이 초기화되지 않은 상태 ( 의도적으로 넣을 수도 있고 )
  • null : 의도적으로 null을 넣어주어야 함.
 

null과 undefined 비교

// ==로 비교하면 둘은 같다. console.log(null == undefined) // true // == 로 비교해도 나머지 falsy 들과는 다르게 인지한다. console.log(0 == undefined) // false console.log('' == undefined) // false console.log(false == undefined) // false // ===로 비교하면 정확하게 동일한 것만 같다고 인지함. console.log(null === undefined) // false
 

비교 팁

nullundefined를 구분해서 봐야하는 경우가 아니라면 === 대신 == 으로 한번에 비교하는 것을 추천한다.
// bad const func = (arg: null | undefined | number) => { if(arg === null || arg === undefined){ } }; // good const func = (arg: null | undefined | number) => { if(arg == null){ } };
 

JSON

null은 포함되지만, undefined는 포함되지 않는다.
JSON.stringify({ willStay: null, willBeGone: undefined }) // {"willStay":null} // null은 JSON에 포함되지만, undefined는 포함되지 않음.