typeofの概要
データ型の判定 JavaScript演算子 | ||
typeof 式 概要 わかりやすく説明 |
||
|
typeofの基本的な使い方
以下は、typeof
を使用した基本的な例です。
// 基本的なデータ型の判定
console.log(typeof "Hello"); // "string"
console.log(typeof 42); // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object"(例外的な結果)
console.log(typeof {}); // "object"
console.log(typeof []); // "object"(配列もオブジェクト)
console.log(typeof function() {}); // "function"
- 基本データ型を判定できます。
null
が"object"
と判定されるのはJavaScriptの仕様によるものです。
typeofの応用例
以下は、typeof
を用いた実践的な例です。
// 動的型付けを利用した例
function checkType(value) {
if (typeof value === "string") {
console.log("これは文字列です: " + value);
} else if (typeof value === "number") {
console.log("これは数値です: " + value);
} else {
console.log("未知の型です: " + typeof value);
}
}
checkType("こんにちは"); // これは文字列です: こんにちは
checkType(123); // これは数値です: 123
checkType(true); // 未知の型です: boolean
- 条件分岐で
typeof
を使用すると、柔軟な型チェックが可能です。 - 型によって異なる処理を実行できます。
注意点
- nullの判定:
typeof null
は"object"
を返します。これは仕様上のバグで、修正されていません。 - 配列の判定:
typeof []
も"object"
を返します。配列を判定するにはArray.isArray()
を使用してください。 - NaNの扱い:
typeof NaN
は"number"
を返しますが、実際には数値ではありません。
よくある質問
- Q:
typeof null
が"object"
を返すのはなぜですか? - A: これはJavaScriptの初期設計時のバグですが、互換性を維持するためにそのまま残されています。
- Q: 配列のデータ型を判定する方法は?
- A:
Array.isArray()
を使用してください。例えば、Array.isArray([])
はtrue
を返します。 - Q: 関数はどのように判定されますか?
- A:
typeof
を使用すると、関数は"function"
と判定されます。関数だけを特定したい場合に便利です。
まとめ
typeof
は、データ型を判定するための便利な演算子です。ただし、null
やNaN
の判定には注意が必要です。
- 基本データ型の判定に適しています。
- 特殊ケースでは
Array.isArray()
やinstanceof
などを併用してください。 - コードの安全性を高めるため、型チェックを活用しましょう。