JavaScriptの複雑なデータ型とは?typeof演算子によるデータ型の判定方法を解説
JavaScriptにおけるデータ型とtypeof演算子の基本
JavaScriptでは、数値・文字列・真偽値といった基本のデータ型(プリミティブ型)に加えて、オブジェクトや配列、関数などの「複雑なデータ型(参照型)」を扱うことができます。これらのデータ型をプログラム内で判別する際に活躍するのが、typeof 演算子です。
typeof は単項演算子の一種で、オペランド(被演算子)の直前に置いて使用します。オペランドには任意の型の値を指定でき、評価結果として、そのオペランドのデータ型を表す文字列が返されます。
具体的には、オペランドが数値であれば "number"、文字列であれば "string"、真偽値であれば "boolean" という文字列に評価されます。この結果を比較演算子と組み合わせれば、値の型に応じた条件分岐などを簡単に実装できます。
複雑なデータ型を判定したときの戻り値
オブジェクトや配列などの複雑なデータ型に対して typeof を使うと、"object" が返されます。ただし、関数の場合だけは例外的に "function" という文字列が返される点に注意が必要です。主な戻り値は以下の通りです。
- 数値 → "number"
- 文字列 → "string"
- 真偽値 → "boolean"
- オブジェクト・配列 → "object"
- 関数 → "function"
- 未定義の値 → "undefined"
サンプルコード
次のコードを実行すると、JavaScriptにおける typeof 演算子の基本的な使い方を確認できます。
<!DOCTYPE html>
<html>
<body>
<script>
var a = 10;
var b = "String";
var linebreak = "<br />";
var result = (typeof b === "string") ? "bは文字列型です" : "bは文字列型ではありません";
document.write("結果 => " + result);
document.write(linebreak);
result = (typeof a === "string") ? "aは文字列型です" : "aは文字列型ではありません";
document.write("結果 => " + result);
document.write(linebreak);
</script>
</body>
</html>実行結果の解説
変数 b には文字列 "String" が代入されているため、typeof b は "string" と評価され、条件式は true になります。その結果、画面には「bは文字列型です」と出力されます。
一方、変数 a には数値の 10 が代入されているため、typeof a の結果は "number" となり、条件式は false と評価されます。よって、こちらは「aは文字列型ではありません」と表示されます。
このように typeof 演算子を使えば、変数のデータ型を実行時に簡単に調べることができ、特に外部からの入力値やAPIのレスポンスなど、事前に型が確定しない値を扱う場合に非常に便利です。
-
JavaScriptのPromiseとは?非同期処理の基本をわかりやすく解説
JavaScriptのPromiseとは?Promise(プロミス)は、JavaScriptで非同期処理を扱うためのオブジェクトです。Promiseが生成された時点では、最終的な結果の値はまだ確定していません。処理が完了した将来のタイミングで、成功または失敗の結果を受け取ることができます。これにより、APIからのデータ取得やファイル読み込みなど、時間のかかる処理を効率的に記述できます。Promiseの3つの状態Promiseは、必ず以下の3つの状態のいずれかを持ちます。pending(待機):初期状態。処理がまだ完了していない状態です。fulfilled(履行):処理が正常に完了し、結果の値が
-
Python 3の標準データ型とは?数値・シーケンス・辞書の基本をわかりやすく解説
Python 3の標準データ型の概要Python 3に標準で用意されているデータ型は、大きく分けて「数値型」「シーケンス型」「辞書(ディクショナリ)型」の3つに分類できます。辞書はキーと値のペアを格納するコレクションであり、Pythonプログラミングにおいて最も頻繁に使われるデータ構造の一つです。数値型(Numeric Types)数値型には「整数(int)」「浮動小数点数(float)」「複素数(complex)」の3種類があります。整数(int):小数点を含まない整数値です。例:10、-10浮動小数点数(float):小数部分を持つ実数です。例:1.55、0.005複素数(complex)