Don’t worry about failures

type check에 대해 본문

Type.Java.Script

type check에 대해

허흥 2022. 4. 24. 11:08
728x90

자바스크립트는 동적타입이기 때문에 타입 검사에 어려움이 있다. 단순히 타입 체크를 할 경우 오류를 범할 수 있다. 

 

먼저 자바스크립트 변수에는

원시변수참조 변수가 존재한다.

 

원시변수는 string, number, boolean, undefined 등이 있다.

 

참조 변수는 array, Date, String, Obect, function 등이 있다.

 

일반적으로 typeof를 통해 타입을 체크할 경우 원시변수의 경우 별 이상없이 체크가 가능할 것이다.

하지만 참조 변수의 경우 typeof를 찍어보면 모두 object로 나올 것이다. 

 

이는 instanceof로 구분하여 사용할 수 있다. 

 

Const arr = [];

Const func = function() {};

Const date = new Date();

 

Arr instanceof Array // true

Func instanceof function // true

Date instanceof Date // true

 

하지만 여기서 주의해야할 것이 있다.

위의 예제에서 instanceof Object를 찍어보면 다 true로 나온다. 그 이유는 Reference변수의 경우 최상위는 Object이기 때문이다. 즉, prototype chain에 의해 최상위가 object 이기 때문에 instanceof를 찍으면 object도 true로 나온다. 

 

 

이보다 조금 더 구체적으로 확인하려면

Object.prototype.toString.call("aa") // [object String]

 

위와 같은 방법도 있다.

 

추가로 고려해야할 것이 있다. 바로 null

null을 typeof 찍어보면 object로 나온다. 이는 자바스크립트 내에서 오류이고 이를 인정한 것이라고 한다. 

728x90

'Type.Java.Script' 카테고리의 다른 글

Javascript의 가비지컬렉터  (0) 2024.03.03
push와 splice  (1) 2022.12.01
호이스팅에 대해  (1) 2022.04.23
clean code에 대해(1) ( 임시 변수 제거 )  (0) 2022.04.23
sort()에 대해  (1) 2021.10.10