[javascript] null, undefined 차이점 및 비교

Jinbro·2023년 4월 23일
0

javascript

목록 보기
8/13

배경설명

  • 특정 변수에 아무것도 할당되지 않거나 경우
    • java는 null 로 표현
    • javascript는 null or undefined 로 표현
  • javascript에서 undefined 예외처리는 많이 했었지만, null 대한 고민은 거의 해보지 않았었음
    • local storge 에 등록되지 않은 key 로 value get 할 때, null 반환 case는 있었음
  • javascript에서의 nullundefined 에 차이점에 대해서 알아보자!

undefined vs null

구분변수 선언값 할당typeof의미 요약
undefinedOX'undefined'값이 아직 할당되지 않음
nullXX'object'값이 없음

undefined

  • 변수 선언은 되었으나, 값이 할당되지 않은 상태
  • 객체에 존재하지 않는 속성에 접근
let val;
val // undefined

let obj = {};
obj // undefined

let arr = [];
arr // undefined

obj = {
 id: 1,
 name: 'park',
};
obj.age // undefined

obj = {
 id: undefined, // 변수에 직접 undefined 를 할당하는 것은 지양해야한다!
};
  • 값을 할당하지 않은 case와 값이 없는 case를 구분 필요 있음

null

  • 값이 없는 상태
let val = null;
val // null

let obj = {
 id: 1,
 name: 'park',
 age: null, // 명시적으로 값이 없음을 의미
};
obj.age // undefined
  • 값이 없는 case를 명시적으로 구분하기 위해 null 활용

null 과 undefnied 비교 조건

null === undefined // false
  • '===' 로 비교 시 false 반환
    • type이 다르기 때문 (null -> object, undefined -> undefined)
null == undefined // true
  • '==' 로 비교 시 true 반환

isEmpty

  • 변수에는 null 과 undefined가 모두 할당될 가능성이 있음
isEmpty: (val) => {
	if (
		val === undefined ||
		val === null ||
        ...
	) {
		return true;
    }
	return false;
},

결론

  • 명확한 소스 코드를 위해 nullundefined 를 구분해서 사용 권장

참고

profile
자기 개발 기록 저장소

0개의 댓글