JS : Null vs Undefined

?·2020년 9월 19일
0

What I've learned

목록 보기
9/21

null과 undefined 이 두 타입은 모두 JS에서 ‘값이 없음’을 나타낸다.

그렇다면 이 둘의 차이는 과연 무엇일까?

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

즉, 정의되지 않은 것, 초기화되어 있지 않거나 존재하지 않는 객체의 프로퍼티 및 존재하지 않는 배열의 원소값에 접근하려고 할때 얻어지는 변수의 값이다

let msg;
console.log(msg === undefined); // true

위의 코드는 msg는 선언만하고 초기화하지 않았기 때문에 undefined 값을 갖는 사례이다.

결론적으로 undefined는 데이터 타입이자, 값을 나타내는데 여기서 중요한 것이 변수의 초깃값이 undefined라는 점이다. 비록 변수만 선언만 했지만 값을 가진다는 말이다. 그렇기 때문에 값이면서 데이터 타입인 것이다.

이에 반해 null 타입 변수의 경우는 '명시적으로' 값이 비어있음을 나타내는데 사용한다.

다시 말해서, 아무것도 참조하고 있지 않다라는 의미가 담겨 있으며 주로 객체를 담을 변수를 초기화할 때 많이 사용한다.

하지만 null 역시 undefined와 마찬가지로 값이며 데이터 타입이다.
분명한 차이점은 undefined는 변수를 선언만 하더라도 할당되지만 null은 변수를 선언한 후에 null로 값을 바꾼다는 점이다.

즉!!!!

null 과 undefined 는 차이는 등록, 저장 여부이다.
null 은 값은 값이지만 값으로써 의미없는 특별한 값이 등록되어 있는 것이고, undefined 는 등록이 되어있지 않기 때문에 초기화도 정의되지도 않은 것이다.
undefined 는 미리 선언된 전역변수(전역 객체의 프로퍼티)이며, null 은 선언,등록을 하는 키워드인 것이다.

또한 null은 데이터 타입이 object로 반환되는데 빈 객체를 참조하고 있기 때문이다. 이 부분을 기억해 두도록 하자!

profile
?

0개의 댓글