티스토리 뷰

공부합시다/Javascript

타입 검사

신규_유저 2022. 3. 16. 17:29

자바스크립트에서 타입 검사 방법에는 대표적으로 두 가지가 있다.

 

1. typeof  : 해당 변수나 값이 어떤 자료형인지 문자열로 반환한다.

2. instanceof : 생성자의 prototype 속성이 해당 객체의 프로토타입 체인 어딘가 존재하는지 판별한다.

 

typeof

반환할 수 있는 값

Type Result
Undefined "undefined"
Null "object"
Boolean "boolean"
Number "number"
Bigint "bigint"
String "string"
Symbol "symbol"
호스트 객체 구현체마다 다름
Function 객체 "function"
다른 모든 객체 "object"

콘솔에 직접 출력해보자.

console.log("typeof 'Hello' : ", typeof 'Hello');
console.log("typeof 123 : ", typeof 123);
console.log("typeof A : ", typeof "A");

 

instanceof

먼저, 

const arr = []; // 배열
const func = function() {}; // 함수
const date = new Date(); // 날짜

배열, 함수, 날짜 각 객체를 만든 후 각각 확인해보자.

console.log("arr instanceof Array : ", arr instanceof Array);
console.log("func instanceof Function : ", func instanceof Function);
console.log("date instanceof Date : ", date instanceof Date);

Array, Function, Date 전부 Object의 인스턴스에 해당된다. 그렇다면 각 객체를 instanceof로 확인했을 때

console.log("arr instanceof Object : ", arr instanceof Object);
console.log("func instanceof Object : ", func instanceof Object);
console.log("date instanceof Object : ", date instanceof Object);

Object라는 것을 확인 할 수 있다.

 

 

추가 : 객체 클래스 확인하기

toString으로 해당 객체의 클래스까지 확인할 수 있다.

console.log("Object.prototype.toString.call(arr) : ", Object.prototype.toString.call(arr));
console.log("Object.prototype.toString.call(func) : " + Object.prototype.toString.call(func));
console.log("Object.prototype.toString.call(date) : ", Object.prototype.toString.call(date));

 

반응형
LIST
댓글
링크
공지사항
최근에 올라온 글