반응형
javascript는 총 7개의 타입을 갖고 있습니다.
- null
- undefined
- boolean
- number
- string
- object
- symbol (es6부터 추가)
위 타입들은 typeof 연산자로 확인할 수 있습니다.
typeof undefined === "undefined"; // true
typeof true === "boolean"; // true
typeof 42 === "number" // true
typeof "42" === "string" // true
typeof { life: 42 } === "object" // true
typeof Symbol() === "symbol" // true
하지만 null은 예외적으로 typeof에 대한 값이 object로 나옵니다.
typeof null === "object"; // true
자바스크립트를 처음 구현할 때, 자바스크립트 값은 타입 태그와 값으로 표시되었습니다.
그 중 객체의 타입 태그는 0이었고 null은 Null pointer(대부분의 플랫폼에서 0x00)로 표시되었습니다.
그 결과 null은 타입 태그로 0을 가지며, 따라서 typeof는 object를 반환합니다.
null 타입 체크 하는 법
null을 타입체크 하기 위해선 아래와 같이 작성해야합니다.
var a = null;
(!a && typeof a === "object"); // true
null은 object의 typeof결과값을 갖고 있으면서 falsy한 값이기 때문에 두 개를 모두 충족시키는지 확인함으로써
null의 type을 check할 수 있습니다.
참고
YOU DON'T KNOW JS
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/typeof#null
반응형
'Web > JavaScript' 카테고리의 다른 글
라인 피드와 캐리지 리턴 (0) | 2022.04.07 |
---|---|
자주 사용하는 정규표현식 [ javascript ] (0) | 2021.09.08 |
&&와 || 연산자 (0) | 2021.07.19 |
하나만 true/truthy인지 구분하기 js (0) | 2021.07.19 |
간단하게 해주는 js 표현식 정리 (0) | 2021.07.17 |