글쓰는 개발자

[이론]js 개발자라면 알아야하는 핵심 컨셉 33개 #5.Typeof 본문

Development/기타

[이론]js 개발자라면 알아야하는 핵심 컨셉 33개 #5.Typeof

개발하자 2019. 6. 14. 18:34

개발하다보면, 사용하고 있는 데이터의 타입 정보가 필요한 경우가 생긴다.

이런 경우를 위해 JS에서는 typeof라는 함수를 제공한다.

 

js 개발자라면 알아야하는 핵심 컨셉 33개, 그 5번째는 typeof이다.

typeof에 대해서는 크게 깊게 다뤄야 할 부분은 몇 개 없지만,

자바스크립트에서 발생하는 일종의 버그 케이스가 몇가지 있어 소개하려고 한다.

 

typeof는 대부분의 primitive types에서 작동한다.

typeof(primitive types)

Boolean, String, Number, Function, Undefined등의 type을 string 형태로 반환해주는 것을 확인할 수 있다.

다음 예시를 보자.

무슨 경우일까.

결과부터 얘기하자면 설계가 잘못된(?) 버그라고 할 수 있겠다.

typeof null이 "null"을 return하도록 하자는 논의가 있었으나, 이미 JS를 기반으로 또는 사용하여 만들어진

프로그램들에게 영향을 미칠 수 있기 때문에 기각되었다고 한다.

자세한 부분은 이 곳을 참고.

 

이러한 상황도 존재한다.

Array의 타입을 검사했더니, object를 반환한다.

Object의 타입을 검사해도 object를 반환한다.

위처럼 짧은 코드의 경우에는 코드를 뒤적거리면 금방 요놈이 Array구나 하는 것을 알아낼 수 있겠으나,

복잡하고 정밀한 코드가 요구되는 경우에는 상당한 어려움이 생길 수 있다.

이러한 경우에는 typeof를 대신하여서 다음과 같은 방법을 사용한다.

instanceof

instanceof를 사용하여 Array인지 Object인지 가려낼 수 있다.

 

 

출처 : github js-33conceptsNomad Coders

반응형
Comments