일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 리액트쿼리
- vanilla-extract
- sprinkles
- async
- Basic
- Cache
- 개발자
- 아키텍처
- styled-component
- 컴포넌트
- mock service worker
- CSS-in-JS
- react server component
- 자바스크립트
- link
- 리액트
- react-native
- SWC
- 최적화
- thread
- 쓰레드
- React
- 리액트네이티브
- Concurrent Mode
- 목킹
- react-query
- MSW
- 비동기
- next hydration
- 캐쉬
- front-end mocking
- 기초
- JavaScript
- Babel
- mockoon
- next.js
- 기본
- Critical Rendering Path
- 동기
- amplify
- Today
- Total
Don’t worry about failures
type check에 대해 본문
자바스크립트는 동적타입이기 때문에 타입 검사에 어려움이 있다. 단순히 타입 체크를 할 경우 오류를 범할 수 있다.
먼저 자바스크립트 변수에는
원시변수와 참조 변수가 존재한다.
원시변수는 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로 나온다. 이는 자바스크립트 내에서 오류이고 이를 인정한 것이라고 한다.
'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 |