⏳ 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
'카카오테크캠퍼스 > 필수과정' 카테고리의 다른 글
[카카오테크캠퍼스 5주차] JavaScript 마스터: 구조 분해 할당 (0) | 2023.05.10 |
---|---|
[카카오테크캠퍼스 5주차] JavaScript 마스터: 연산자 (0) | 2023.05.10 |
[카카오테크캠퍼스 5주차] JavaScript 마스터: Truthy & Falsy (0) | 2023.05.09 |
[카카오테크캠퍼스 5주차] JavaScript 마스터: 형 변환(Type Conversion) (0) | 2023.05.09 |
[카카오테크캠퍼스 5주차] 유의적 버전(Semantic Versioning) (0) | 2023.05.08 |