JavaScriptの学習・参考リファレンス/ドキュメント

JavaScript、ECMAScriptの学習と参考メモ 入門~初心者~中級者~上級者を目指して

型の判定

JavaScriptで typeof、Object.prototype.toString.call、instanceof を使った型判定の方法について説明します。

typeofを使うと、プリミティブな型、object型の判定ができます。

let a1 = undefined;
let a2 = null;
let a3 = true;
let a4 = 123.45;
let a5 = 123456789n;
let a6 = 'Hello';
let a7 = [1, 2, 3];
let a8 = { fullName:'Taro', age:40 };
let a9 = /a*b+c/;
let a10 = Symbol();
let a11 = function(){};
let a12 = Math;
class Animal {}
let a13 = new Animal();

console.log(typeof(a1)); // "undefined"
console.log(typeof(a2)); // "object" nullはobjectとなる
console.log(typeof(a3)); // "boolean"
console.log(typeof(a4)); // "number"
console.log(typeof(a5)); // "bigint"
console.log(typeof(a6)); // "string"
console.log(typeof(a7)); // "object" 配列
console.log(typeof(a8)); // "object" オブジェクト
console.log(typeof(a9)); // "object" 正規表現
console.log(typeof(a10)); // "symbol"
console.log(typeof(a11)); // "function"
console.log(typeof(a12)); // "object" Math
console.log(typeof(a13)); // "object" 定義したクラス

オブジェクト型については、Object.prototype.toString.callを使うとより詳細な情報が分かる場合があります。

console.log(Object.prototype.toString.call(a1)); // "[object Undefined]"
console.log(Object.prototype.toString.call(a2)); // "[object Null]" object Nullとなる
console.log(Object.prototype.toString.call(a3)); // "[object Boolean]"
console.log(Object.prototype.toString.call(a4)); // "[object Number]"
console.log(Object.prototype.toString.call(a5)); // "[object BigInt]"
console.log(Object.prototype.toString.call(a6)); // "[object String]"
console.log(Object.prototype.toString.call(a7)); // "[object Array]" 配列
console.log(Object.prototype.toString.call(a8)); // "[object Object]" オブジェクト
console.log(Object.prototype.toString.call(a9)); // "[object RegExp]" 正規表現
console.log(Object.prototype.toString.call(a10)); // "[object Symbol]"
console.log(Object.prototype.toString.call(a11)); // "[object Function]"
console.log(Object.prototype.toString.call(a12)); // "[object Math]" Math
console.log(Object.prototype.toString.call(a13)); // "[object Object]" 定義したクラス

インスタンスが指定した型であるかはinstanceofで判定できます。

console.log(a7 instanceof Array); // true
console.log(a8 instanceof Object); // true
console.log(a9 instanceof RegExp); // true
console.log(a11 instanceof Function); // true
console.log(a13 instanceof Animal); // true
作成日 : 2020年06月28日