Front-End/Javascript

null 과 undefined 차이점

태나미 2021. 3. 14. 16:21

undefined

undefined는 데이터 타입이자, 값을 나타냅니다.

undefined는 '값이 할당되지 않은 상태’를 나타낼 때 사용합니다.

temp라는 변수를 선언하였지만, 값을 할당하지 않았기 때문에 temp변수에 undefined를 할당하게 됩니다.

변수만 선언했지만 값을 가지게 되어 undefined는 값이면서 데이터 타입인 것입니다.

let currentUser;
console.log(currentUser, typeof currentUser); 
// undefined, "undefined"

null

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

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

null 또한 undefined과 마찬가지로 값이며 데이터 타입입니다.

분명한 차이점은 undefined는 변수를 선언만 하더라도 할당되지만 null은 변수를 선언한 후에 null로 값을 바꾼다는 점입니다.

let age = null; 
console.log(age, typeof age);
// null, "object"

 

자바스크립트에선 null을 ‘존재하지 않는(nothing)’ 값, ‘비어 있는(empty)’ 값, ‘알 수 없는(unknown)’ 값을 나타내는 데 사용합니다.

위의 예제에선 age 변수를 'null'로 할당했는데, 이는 나이(age)를 알 수 없거나 그 값이 비어있음을 나타냅니다.

typeof null은 object, 자바스크립트 자체 버그입니다. null 체크가 필요할때는 '===' 연산자 사용하여 비교해주면 됩니다.


공통점: 이 두 타입은 모두 자바스크립트에서 '값이 없음'을 나타냅니다.

 

차이점

null은 값은 값이지만 값으로써 의미 없는 특별한 값이 등록되어 있는 것이고, 
undefined는 등록이 되어있지 않기 때문에 초기화도 정의되지도 않은 것입니다.

undefined는 미리 선언된 전역 변수(전역 객체의 프로퍼티)이며, null 은 선언, 등록을 하는 키워드인 것입니다.

 

 

출처: 

webclub.tistory.com/1

ko.javascript.info/types