다들 버그에 맞게 코드를 써버려서
아직까지 고쳐지 못하고 있는 자바스크립트 버그
typeof '' // string
typeof '123' // string
typeof 1 // number
typeof true // boolean
typeof {} // object
typeof /test/index // object
typeof function () {} // function
typeof undefined // undefined
위에는 논리적으로 맞는 결과값인데
참고 : 자바스크립트의 원시타입은 number, String, Boolean, null, undefined, Symbol, Bigint 가 있음.
아래는 ? NaN은 뭐 number가 비어있는거라 치고,
null은 심지어 원시타입인데 왜 object로 출력이 되어버린다. (아마 비어있는 객체로 취급하는듯?)
typeof NaN //number
typeof new String() //object
typeof null //object
typeof [] //object
따라서 값이 null 타입인지 확인할때는 typeof말고 일치연산자===을 사용해서 아래와 같이 사용하면 된다.
let test = null;
typeof test === null; // false (버그!!)
test === null; // true 이렇게 사용해야 한다.
참고자료
자바스크립트 DeepDive p.88
https://curryyou.tistory.com/183
[JS] 자바스크립트 null은 객체? 기본 타입! (typeof null)
# 자바스크립트 null? 자바스크립트의 null은 '의도적으로 값이 없음'을 명시하기 위한 기본 데이터 타입이다. 타입도 null이며, 값도 null인 Primitive Type이다. 즉, null은 객체가 아니다!(기본 타입이다!
curryyou.tistory.com
[Javascript] null의 type이 과연 null일까?
이번에 포스팅할 내용은 javascript type에 관한 내용이다.이번에 하는 프로젝트에서 타입을 이용한 예외처리를 했지만 에러가 떠버려서 뭐지?? 하면서 디버깅 하는 과정에서 알게된 내용을 공유하
velog.io
https://velog.io/@na0ngkim/JavaScript-typeof-null%EC%9D%80
JavaScript - typeof null은?
typeof 연산자는 피연산자의 데이터 타입을 연산자로 반환한다.typeof 연산자는 7가지 문자열 string, number, boolean, undefined, symbol, object, function 중 하나를 반환한다. 위 코드를 실행시키면 null이 아니라
velog.io