반응형
null과 undefined 모두 변수에 값이 없는 것을 나타내기 위해 사용하지만 그 의미는 다르다.
null
: 의도적으로 변수의 값이 비어있음을 나타내기 위해 사용.
null은 변수가 선언되고 'null'이라는 값이 할당되어 있는 것을 나타낸다. 즉, 아무런 의미가 없는 값이 할당되어있는 것을 말한다.
undefined
: 변수에 값이 할당되지 않았을 때 사용.
undefined는 변수가 선언되고 아무 값도 할당되어 있지 않은 것을 나타낸다. 즉 undefined는 자료형이 없는 상태를 말한다.
Null
객체가 없음을 뜻한다.
typeof null //"object"
const foo = null; // 변수가 선언되고 `null` 값을 할당해야함
if(foo){
//실행되지 않음
}
Undefined
함수가 명시적으로 값을 반환하지 않으면 undefined를 반환하는 것으로 처리된다.
typeof undefined //"undefined"
let foo; // 변수 선언 후 값을 할당하지 않았으므로 `undefined`
const obj = {};
obj.prop; // undefined
if(foo){
// 실행되지 않음
}
Null과 Undefined의 비교
null == null //true
null === null //true
undefined == undefined //true
undefined === undefined //true
undefined === null //false
!null //true
undefined == null //true
위에서 볼 수 있듯이 ==
연산자로 비교한 undefined
와 null
은 같다고 처리된다. 따라서 null
과 undefined
체크를 동시에 하기 위해서는 변수를 ==
연산자로 비교하는 것이 편하다.
null == false //false
null === false //false
undefined == false //false
undefined === false //false
빈 값을 표현하기 위해서 변수의 값에 null
과 undefined
중 무엇을 할당하는 것이 좋을까?
let foo;
let bar = undefined;
위와 같은 경우 foo
와 bar
는 다르게 선언되었지만 모두 undefined를 나타낸다. 이렇게 되면 개발의 의도가 명확하지 않을 가능성이 있다. 따라서 명시적으로 변수에 값이 없는 것을 나타내고 싶을 때에는 null
을 사용하는 것이 좋다.
반응형
'개발 공부 > JavaScript & TypeScript' 카테고리의 다른 글
[iOS] momentum scroll - scroll API 사용하기 (0) | 2022.12.14 |
---|---|
[TS] Array filter 타입 추론 - type guard (0) | 2022.08.17 |
댓글