typeof 演算子
最終更新:2026-10-13
typeof 演算子
| カテゴリ | 演算子 |
|---|
⚙️ 引数
| 操作数 |
|---|
元の値を変更するか:いいえ(新しい値を返す)
⚠️ 警告
💡 ヒント
🌐 ブラウザ対応
| ブラウザ | |||||
|---|---|---|---|---|---|
| typeof | ✓ v1 | ✓ v12 | ✓ v1 | ✓ v1 | ✓ v1 |
| すべてのモダンブラウザで対応 | |||||
🏷️ 関連する演算子
💡 関連するケース
さらに多くのケースは近日公開予定です。
📚 関連チュートリアル
❓ よくある質問
Qtypeof null が "object" になるのはなぜですか?
A最初期の実装の名残です。当時、値は32ビットで保存され、下位ビットを型タグに使っていました。null は全ビットが0で、それがちょうど型タグのなかでオブジェクトの領域に当たってしまったのです。標準化で直すには、すでにあまりに多くの初期のウェブコードがそこに依存していました。null の判定は x === null を使いましょう。
Qtypeof は配列とオブジェクトを区別できますか?
Aできません。配列、通常のオブジェクト、日付、正規表現はすべて "object" を返します。見分けるには Array.isArray(x)、x instanceof Date、または Object.prototype.toString.call(x) を使いましょう。
Q宣言されていないかもしれない変数は、どうやって判定すればいいですか?
Atypeof someVar !== "undefined" が唯一安全な書き方です。if (someVar) と直接書くと、名前が未宣言のときは ReferenceError を投げます。一方 typeof は未宣言の名前にも単に "undefined" を返し、実行を止めません。