Created
January 2, 2016 20:06
-
-
Save petamoriken/3f8589a51b777e569386 to your computer and use it in GitHub Desktop.
JavaScript (ES6) の型チェックメモ。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// プリミティブ値 | |
// undefined | |
hoge === undefined; // strict mode のみ | |
hoge === void 0; | |
typeof hoge === "undefined"; | |
Object.prototype.toString.call(hoge) === "[object Undefined]"; // 他に Symbol.toStringTag が "Undefined" なオブジェクトがないときのみ | |
// null | |
hoge === null; | |
Object.prototype.toString.call(hoge) === "[object Null]"; // 他に Symbol.toStringTag が "Null" なオブジェクトがないときのみ | |
// String | |
typeof hoge === "string"; | |
// Number | |
typeof hoge === "number"; | |
// Infinity, -Infinity | |
hoge === Infinity; // global に Infinity が定義されているときのみ | |
hoge === Number.POSITIVE_INFINITY; | |
hoge === -Infinity; // global に Infinity が定義されているときのみ | |
hoge === Number.NEGATIVE_INFINITY; | |
// NaN | |
Number.isNaN(hoge); | |
// Finite (有限値) | |
Number.isFinite(hoge); | |
// Integer (整数値) | |
Number.isInteger(hoge); | |
// Boolean | |
typeof hoge === "boolean"; | |
// true, false | |
hoge === true; | |
hoge === false; | |
// Symbol | |
typeof hoge === "symbol"; | |
// オブジェクト値 | |
typeof hoge === "object"; | |
// Object | |
Object.prototype.toString.call(hoge) === "[object Object]"; // 他に Symbol.toStringTag が "Object" なオブジェクトがないときのみ | |
// Array | |
Array.isArray(hoge); | |
Object.prototype.toString.call(hoge) === "[object Array]"; // 他に Symbol.toStringTag が "Array" なオブジェクトがないときのみ | |
// Function | |
typeof hoge === "function"; | |
// GeneratorFunction | |
hoge instanceof (function*(){}).constructor; // 同じ global 環境で作られたときのみ | |
// Date | |
hoge instanceof Date; // 同じ global 環境で作られたときのみ | |
// RegExp | |
hoge instanceof RegExp; // 同じ global 環境で作られたときのみ | |
// Error | |
hoge instanceof Error // 同じ global 環境で作られたときのみ | |
Object.prototype.toString.call(hoge) === "[object Error]"; // 他に Symbol.toStringTag が "Error" なオブジェクトがないときのみ | |
// Math (class そのもの) | |
hoge === Math; // 同じ global 環境のみ | |
Object.prototype.toString.call(hoge) === "[object Math]"; // 他に Symbol.toStringTag が "Math" なオブジェクトがないときのみ | |
// JSON (class そのもの) | |
hoge === JSON; // 同じ global 環境のみ | |
Object.prototype.toString.call(hoge) === "[object JSON]"; // 他に Symbol.toStringTag が "JSON" なオブジェクトがないときのみ | |
// Collections (Map, Set, WeakMap, WeakSet) | |
hoge instanceof Map; // 同じ global 環境で作られたときのみ | |
Object.prototype.toString.call(hoge) === "[object Map]"; // 他に Symbol.toStringTag が "Map" なオブジェクトがないときのみ | |
hoge instanceof Set; // 同じ global 環境で作られたときのみ | |
Object.prototype.toString.call(hoge) === "[object Set]"; // 他に Symbol.toStringTag が "Set" なオブジェクトがないときのみ | |
hoge instanceof WeakMap; // 同じ global 環境で作られたときのみ | |
Object.prototype.toString.call(hoge) === "[object WeakMap]"; // 他に Symbol.toStringTag が "WeakMap" なオブジェクトがないときのみ | |
hoge instanceof WeakSet; // 同じ global 環境で作られたときのみ | |
Object.prototype.toString.call(hoge) === "[object WeakSet]"; // 他に Symbol.toStringTag が "WeakSet" なオブジェクトがないときのみ | |
// Promise | |
hoge instanceof Promise // 同じ global 環境で作られたときのみ | |
Object.prototype.toString.call(hoge) === "[object Promise]"; // 他に Symbol.toStringTag が "Promise" なオブジェクトがないときのみ | |
// Proxy | |
hoge instanceof Proxy // 同じ global 環境で作られたときのみ | |
Object.prototype.toString.call(hoge) === "[object Proxy]"; // 他に Symbol.toStringTag が "Promise" なオブジェクトがないときのみ | |
// Reflect (class そのもの) | |
hoge === Reflect; // 同じ global 環境のみ | |
Object.prototype.toString.call(hoge) === "[object Reflect]"; // 他に Symbol.toStringTag が "Reflect" なオブジェクトがないときのみ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment