프로그래밍을 하다보면 결과값에

undefined 또는 null 이 발생하는 경우가 있다.

평소에 많이 궁금했던 내용인데 Null 과 undefined 에 대해 알아보겠다.

null 은 자바스크립트 고유값 중의 하나로, 어떠한 값이 의도적으로 비어있음을

표기하며 부울연산에서는 false 로 취급한다.

이와 같은 경우로 나타낼 수 있다.

// 정의되지 않고 초기화된 적도 없는 foo
foo; //ReferenceError: foo is not defined

// 존재하지만 값이나 자료형이 존재하지 않는 foo
var foo = null;
foo; //null

값이 없지만, 비어있음을 나타내는 일종의 값이라 하겠다.

* null 과 undefined 의 차이

typeof null          // "object" (하위호환 유지를 위해 "null"이 아님)
typeof undefined     // "undefined"
null === undefined   // false
null  == undefined   // true
null === null        // true
null == null         // true
!null                // true
isNaN(1 + null)      // false
isNaN(1 + undefined) // true
 

위와 같은 타입을 확인해보면,

null 은 일치연산자(===)를 사용했을 때는 둘이 다르다는 것을 나타내고,

동등연산자(==) 를 사용했을 때는 같다는 것을 나타낸다.

동등연산자를 사용할 경우 콘솔에 경고 메시지가 뜨는 경우가 자주 있어

왠만하면 일치연산자를 사용하는 게 정신건강에 좋을 듯 하다.

+ Recent posts