배경설명
- 특정 변수에 아무것도 할당되지 않거나 경우
- java는
null
로 표현
- javascript는
null
or undefined
로 표현
- javascript에서
undefined
예외처리는 많이 했었지만, null
대한 고민은 거의 해보지 않았었음
- local storge 에 등록되지 않은 key 로 value get 할 때,
null
반환 case는 있었음
- javascript에서의
null
과 undefined
에 차이점에 대해서 알아보자!
undefined vs null
구분 | 변수 선언 | 값 할당 | typeof | 의미 요약 |
---|
undefined | O | X | 'undefined' | 값이 아직 할당되지 않음 |
null | X | X | 'object' | 값이 없음 |
undefined
- 변수 선언은 되었으나, 값이 할당되지 않은 상태
- 객체에 존재하지 않는 속성에 접근
let val;
val
let obj = {};
obj
let arr = [];
arr
obj = {
id: 1,
name: 'park',
};
obj.age
obj = {
id: undefined,
};
- 값을 할당하지 않은 case와 값이 없는 case를 구분 필요 있음
null
let val = null;
val
let obj = {
id: 1,
name: 'park',
age: null,
};
obj.age
- 값이 없는 case를 명시적으로 구분하기 위해
null
활용
null 과 undefnied 비교 조건
null === undefined
- '===' 로 비교 시 false 반환
- type이 다르기 때문 (
null
-> object, undefined
-> undefined)
null == undefined
isEmpty
- 변수에는 null 과 undefined가 모두 할당될 가능성이 있음
isEmpty: (val) => {
if (
val === undefined ||
val === null ||
...
) {
return true;
}
return false;
},
결론
- 명확한 소스 코드를 위해
null
과 undefined
를 구분해서 사용 권장
참고