[이론]js 개발자라면 알아야하는 핵심 컨셉 33개 #5.Typeof
개발하다보면, 사용하고 있는 데이터의 타입 정보가 필요한 경우가 생긴다.
이런 경우를 위해 JS에서는 typeof라는 함수를 제공한다.
js 개발자라면 알아야하는 핵심 컨셉 33개, 그 5번째는 typeof이다.
typeof에 대해서는 크게 깊게 다뤄야 할 부분은 몇 개 없지만,
자바스크립트에서 발생하는 일종의 버그 케이스가 몇가지 있어 소개하려고 한다.
typeof는 대부분의 primitive types에서 작동한다.
Boolean, String, Number, Function, Undefined등의 type을 string 형태로 반환해주는 것을 확인할 수 있다.
다음 예시를 보자.
무슨 경우일까.
결과부터 얘기하자면 설계가 잘못된(?) 버그라고 할 수 있겠다.
typeof null이 "null"을 return하도록 하자는 논의가 있었으나, 이미 JS를 기반으로 또는 사용하여 만들어진
프로그램들에게 영향을 미칠 수 있기 때문에 기각되었다고 한다.
자세한 부분은 이 곳을 참고.
이러한 상황도 존재한다.
Array의 타입을 검사했더니, object를 반환한다.
Object의 타입을 검사해도 object를 반환한다.
위처럼 짧은 코드의 경우에는 코드를 뒤적거리면 금방 요놈이 Array구나 하는 것을 알아낼 수 있겠으나,
복잡하고 정밀한 코드가 요구되는 경우에는 상당한 어려움이 생길 수 있다.
이러한 경우에는 typeof를 대신하여서 다음과 같은 방법을 사용한다.
instanceof를 사용하여 Array인지 Object인지 가려낼 수 있다.