typeof
는 피연산자의 자료형을 판별하여 문자열을 반환하는 단항 연산자(operator)입니다.
자료형에 따라 처리 방식을 다르게 하고 싶거나 변수의 자료형을 빠르게 알아내고자 할 때 유용합니다.
typeof
연산자는 피연산자 앞에 위치하며 두 가지 형태의 문법을 지원합니다.
typeof operand // 연산자
typeof(operand) // 함수
괄호 유무와 상관없이 결과는 동일합니다.
// Undefined, expected output: "undefined"
console.log(typeof undefined);
console.log(typeof undeclaredVariable);
// Null, expected output: "object"
console.log(typeof null); // 언어 자체의 오류
// Boolean, expected output: "boolean"
console.log(typeof true);
console.log(typeof false);
// Number, expected output: "number"
console.log(typeof 37);
console.log(typeof 3.14);
console.log(typeof Math.LN2);
console.log(typeof Infinity);
console.log(typeof NaN); // Despite being "Not-A-Number"
// BigInt, expected output: "bigint"
console.log(typeof 42n);
// String, expected output: "string"
console.log(typeof "");
console.log(typeof "bla");
console.log(typeof (typeof 1)); // typeof always returns a string
// Symbol (ECMAScript 2015에서 추가), expected output: "symbol"
console.log(typeof Symbol());
console.log(typeof Symbol('foo'));
console.log(typeof Symbol.iterator);
// Functions (ECMA-262 표현으로는 [[Call]]을 구현하는 객체), expected output: "function"
console.log(typeof function(){});
console.log(typeof class C {});
console.log(typeof Math.sin);
console.log(typeof alert);
// Object, expected output: "object"
console.log(typeof {a:1});
console.log(typeof Math); // 내장 객체는 객체형
// use Array.isArray or Object.prototype.toString.call
// to differentiate regular objects from arrays
console.log(typeof [1, 2, 4]);
console.log(typeof new Date());
참고 자료