-
Modern JavaScript 타입체크FrontEnd/JavaScript 2023. 1. 22. 00:06
1. typeof
- 타입연산자 : 피연산자의 데이터 타입을 분자열로 반환
- 객체의 종류까지 구분체크는 어려움
typeof ''; // string typeof 1; // number typeof NaN; // number typeof true; // boolean typeof []; // object typeof {}; // object typeof new String(); // object typeof new Date(); // object typeof /test/gi; // object typeof function () {}; // function typeof undefined; // undefined typeof null; // object (설계적 결함) typeof undeclared; // undefined (설계적 결함)
2. toString
- Object.prototype.toString
- Function.prototype.call method 사용시 모든 값의 타입을 알수 있다. (일반 객체, 배열, Date, RegExp, Function, DOM 요소 등)
Object.prototype.toString.call(''); // [object String] Object.prototype.toString.call(new String()); // [object String] Object.prototype.toString.call(1); // [object Number] Object.prototype.toString.call(new Number()); // [object Number] Object.prototype.toString.call(NaN); // [object Number] Object.prototype.toString.call(Infinity); // [object Number] Object.prototype.toString.call(true); // [object Boolean] Object.prototype.toString.call(undefined); // [object Undefined] Object.prototype.toString.call(); // [object Undefined] Object.prototype.toString.call(null); // [object Null] Object.prototype.toString.call([]); // [object Array] Object.prototype.toString.call({}); // [object Object] Object.prototype.toString.call(new Date()); // [object Date] Object.prototype.toString.call(Math); // [object Math] Object.prototype.toString.call(/test/i); // [object RegExp] Object.prototype.toString.call(function () {}); // [object Function] Object.prototype.toString.call(document); // [object HTMLDocument] Object.prototype.toString.call(argument); // [object Arguments] Object.prototype.toString.call(undeclared); // ReferenceError
3. instanceof
- 타입이란 constructor를 말하며 프로토타입 체인에 존재하는 모든 constructor를 검색하여 일치하는 constructor가 있다면 true를 반환
function Person() {} const person = new Person(); console.log(person instanceof Person); // true console.log(person instanceof Object); // true
4. 유사 배열 객체
- 문자열, arguments, HTMLCollection, NodeList 등
- Array.isArray : 배열인지 체크
console.log(Array.isArray([])); // true console.log(Array.isArray({})); // false console.log(Array.isArray('123')); // false
'FrontEnd > JavaScript' 카테고리의 다른 글
Modern JavaScript Strict mode (1) 2023.01.28 Modern JavaScript 스코프 (0) 2023.01.22 Modern JavaScript 객체의 프로퍼티 (0) 2023.01.21 Modern JavaScript 함수 (0) 2023.01.21 Modern JavaScript 객체 (0) 2023.01.21