undefined와 null

준호·2020년 10월 17일
0

두 타입 모두 자바스크립트에서 '값이 없음'을 표현한다.

undefinednull 모두 데이터 타입이자 값을 나타낸다.

undefined

값이 할당되지 않은 변수는 undefined 타입이며, 변수 자체의 값 또한 undefined이다.

var under;와 같이 변수를 선언하면 under 변수에 초기값으로 undefined가 할당된다.

null

명시적으로 값이 비어있음을 나타내기 위해 사용한다.

아무것도 참조하지 않고 있다 라는 의미가 담겨있으다.

객체를 담을 변수를 초기화 할 때 많이 사용한다.

type of null === 'object'
이렇게 뜨는 이유는 자바스크립트의 자체 버그로 인한것이다.
어떤 변수의 값이 null인지 여부를 확인하기 위해서는 일치연산자(===)를 사용하는것이 좋다. a === null

자동으로 undefined를 부여하는 경우

var a;
console.log(a) // undefined 값을 대입하지 않은 변수에 접근

var obj = { a: 1 };
console.log(obj.a) // 1
console.log(obj.b) // undefined 존재하지 않는 프로퍼티 
console.log(b) // b is not defined 전역에 b라는 변수는 존재하지 않음.

var func = function() { };
var c = func(); // 반환값이 없으면 undefined를 반환한 것으로 간주함.
console.log(c); // undefined

사용자가 어딘가에 지정해준 undefined값은 실존하는 데이터인 반면 자바스크립트 엔진이 반환해주는 undefined는 문자 그대로 값이 없음을 나타낸다.

가능한 undefined를 사용자가 직접 지정해주는것은 피하도록 하자.
비어있음을 명시적으로 표현하기 위해서는 null을 사용하자.

profile
빠르게 발전중인 프론트엔드 개발자

0개의 댓글