⭐️ 데이터 유형을 확인하기 위한 여러 가지 유틸리티 함수
export const typeOf = (data) => {
return Object.prototype.toString.call(data).slice(8, -1).toLowerCase();
};
export const isNull = (data) => typeOf(data) === "null";
export const isUndefined = (data) => typeOf(data) === "undefined";
export const isNumber = (data) => typeOf(data) === "number" && !isNaN(data);
export const isBigInt = (data) => typeOf(data) === "bigint" && !isNaN(data);
export const isString = (data) => typeOf(data) === "string";
export const isBoolean = (data) => typeOf(data) === "boolean";
export const isSymbol = (data) => typeOf(data) === "symbol";
export const isFunction = (data) => typeOf(data) === "function";
export const isArray = (data) => typeOf(data) === "array";
export const isObject = (data) => typeOf(data) === "object";
export const isRegExp = (data) => typeOf(data) === "regexp";
export const isDate = (data) => typeOf(data) === "date";
- Object.prototype.toString : 객체를 나타내는 문자열을 반환한다.
- Function.prototype.call : 메소드를 사용하면 모든 타입의 값의 타입을 알아낼 수 있다.
Object.prototype.toString.call(''); // [object String]
Object.prototype.toString.call(true); // [object Boolean]
Object.prototype.toString.call(undefined); // [object Undefined]
String.prototype.slice 메소드를 사용 ⇒
Object.prototype.toString.call 메소드가 반환한 문자열에서 “[object” 와 “]” 를 제외하고 타입을 나타내는 문자열만을 추출.
✅ 참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Function/call
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
https://poiemaweb.com/js-type-check
'Javascript > 재사용 함수' 카테고리의 다른 글
loop & delay 유틸리티 함수 (0) | 2023.04.04 |
---|---|
Memoization(메모이제이션) 패턴을 구현한 memo 함수 (0) | 2023.04.04 |
throttle, debounce 유틸리티 함수 (0) | 2023.04.04 |
객체나 배열의 각 요소를 처리하는 유틸리티 함수 (0) | 2023.04.04 |
랜덤한 수를 생성하기 위한 유틸리티 함수 (0) | 2023.04.04 |