완로그
article thumbnail

⏳ 2023. 5. 8. - 2023. 5. 14.

 

기본적으로 typeof 연산자를 사용하여 데이터 타입을 확인할 수 있다.

console.log(typeof "HELLO"); // string
console.log(typeof 123); // number
console.log(typeof false); // boolean
console.log(typeof undefined); // undefined
console.log(typeof null); // object
console.log(typeof []); // object
console.log(typeof {}); // object
console.log(typeof function () {}); // function

그러나 null, [], {}은 모두 객체 데이터로 확인되는데.. 다른 방법을 써보자.

console.log([].constructor === Array); // true
console.log({}.constructor === Object); // true

constructor를 활용하여 배열과 객체를 구분할 수 있지만.. 여전히 null은 구분할 수 없다!

그렇기 때문에 다음과 같은 방법을 권장한다.

console.log(Object.prototype.toString.call(null).slice(8, -1)); // Null

function checkType(data) {
  return Object.prototype.toString.call(data).slice(8, -1);
}

console.log(checkType("HELLO")); // String
console.log(checkType(123)); // Number
console.log(checkType(false)); // Boolean
console.log(checkType(undefined)); // Undefined
console.log(checkType(null)); // Null
console.log(checkType([])); // Array
console.log(checkType({})); // Object
console.log(checkType(function () {})); // Function
profile

완로그

@완석이

프론트엔드 개발자를 꿈꾸는 완석이의 일기장입니다.