반응형
자바스크립트에서 특수한 값을 담당하는 null과 undefined 타입은 '빈 값, 존재하지 않는 값'이라는 뜻을 가지고 있으나 큰 차이가 있습니다.
null은 '비어 있는 변수, 값이 존재하지 않음'을 의미합니다. typeof를 통해 자료형을 확인하면 object를 반환하지만, 자바스크립트 기존 이슈로 인한 결과이니 객체형으로 오해하지 않도록 주의하면 되겠습니다.
undefined는 변수가 정의되었으나 '아무 값도 할당받지 않음' 상태를 의미합니다. 예를 들어 undefiund는 변수에 어떤 값도 대입하지 않거나, 함수에서 명시적으로 값을 반환하지 않았을 때 undefiend 값이 판정되고 반환됩니다.
둘 다 원시 자료형으로 분류되며, 아래의 예제를 통해 간단하게 확인해볼 수 있습니다.
let value = null; // null 대입
console.log(value); // null
console.log(typeof value); // object
let value2; // 아무 것도 대입하지 않음
console.log(value2); // undefined
console.log(typeof value2); // undefined
value == value2; // true
value === value2; // false
마지막에 null과 undefined를 동등 연산자인 ==로 비교해보면 자료형 비교까지 이루어지지 않기 때문에 true를 반환하는 것을 볼 수 있습니다. 하지만 자료형까지 엄격하게 검사하는 일치 연산자인 ===를 써보면 null과 undefined의 자료형이 다르기 때문에 false가 반환되는 것을 볼 수 있습니다.
검사 연사자에 따라 비교 결과가 다를 수 있다는 점을 유의합시다.
반응형
'웹프로그래밍 > javascript' 카테고리의 다른 글
자바스크립트(javascript) 비교 연산자 (0) | 2020.01.25 |
---|---|
자바스크립트(javascript) 템플릿 문자열(template strings) 알아보기 (0) | 2020.01.25 |
자바스크립트(javascript) 문자열 다루기 (0) | 2020.01.21 |
자바스크립트(javascript) Number 자료형과 Infinity, NaN (0) | 2020.01.21 |
자바스크립트(javascript)에서 사용되는 자료형이란? (0) | 2020.01.20 |