INDEX
型チェックとは?

JavaScriptは動的型付け言語であり、変数の型は値によって自動的に決まります。
そのため、プログラムによっては「この値は文字列なのか」「数値なのか」「配列なのか」といった型チェックを行う必要があります。
型を正しく判定することで、予期しないエラーを防ぎ、安全なプログラムを書くことができます。
typeof演算子を使った型チェック
最も基本的な方法がtypeof演算子です。
typeofは、値のデータ型を文字列で返します。
const value = "JavaScript";
if (typeof value === "string") {
console.log("これは文字列です");
} else if (typeof value === "number") {
console.log("これは数値です");
} else {
console.log("別の型です");
}
この例では、typeofの結果に応じて処理を分岐しています。
typeof valueを実行します。- 結果が
"string"なら文字列として処理します。 - それ以外は別の型として処理します。
typeofで判定できる型
typeofは次のような値を判定できます。
| データ型 | typeofの結果 |
|---|---|
| 数値 | "number" |
| 文字列 | "string" |
| 真偽値 | "boolean" |
| undefined | "undefined" |
| オブジェクト | "object" |
| 関数 | "function" |
| Symbol | "symbol" |
| BigInt | "bigint" |
typeofの注意点
typeofにはいくつか注意点があります。
nullの判定
typeof nullは"object"を返します。
これはJavaScript初期から残る仕様であり、現在でも互換性のため変更されていません。
const value = null;
console.log(typeof value);
// object
nullを判定したい場合は、厳密等価演算子を使用します。
const value = null;
if (value === null) {
console.log("これはnullです");
}
配列はobjectになる
配列もオブジェクトの一種であるため、typeofでは区別できません。
const array = [1, 2, 3];
console.log(typeof array);
// object
instanceof演算子を使った型チェック
オブジェクトが特定のコンストラクタから作成されたかを調べるには、instanceofを使用します。
const date = new Date();
if (date instanceof Date) {
console.log("これはDateオブジェクトです");
}
instanceofは、DateやMap、Setなどのオブジェクトを判定するときにも利用できます。
配列の型チェック
配列かどうかを判定するには、Array.isArray()を使用します。
現在ではこれが最も推奨される方法です。
const array = [1, 2, 3];
if (Array.isArray(array)) {
console.log("これは配列です");
}
typeofでは配列も"object"になるため、配列を判定する場合はArray.isArray()を利用しましょう。
型チェックの応用例
型チェックは、関数へ渡された引数を検証する際にもよく利用されます。
function addNumbers(a, b) {
if (typeof a !== "number" || typeof b !== "number") {
console.error("引数は数値である必要があります");
return;
}
return a + b;
}
console.log(addNumbers(10, 20));
console.log(addNumbers(10, "20"));
// 30
// 引数は数値である必要があります
このように、処理を実行する前に型を確認することで、意図しない値が渡された場合でも安全に処理できます。
初心者が知っておきたいポイント
typeofは基本的な型チェックに利用する。nullはtypeofで"object"になる。- 配列は
typeofでは判定できず、Array.isArray()を利用する。 - オブジェクトの種類を判定する場合は
instanceofを利用する。 - 入力値のチェックを行うことで、安全なプログラムを作成できる。
まとめ
typeofは基本的なデータ型を判定する演算子である。nullはtypeofでは"object"になるため注意が必要である。- 配列は
Array.isArray()で判定するのが推奨される。 - オブジェクトの種類は
instanceofで確認できる。 - 適切な型チェックを行うことで、安全性と保守性の高いコードを書ける。