1. 文字列を渡したとき
  2. 数値を渡したとき
  3. 真偽値を渡したとき
  4. null は object になる
  5. 値を渡さないと undefined になる
コース一覧
JavaScript入門:コードを動かす
typeof で型を調べる

JavaScript入門:コードを動かす

HTML に JavaScript を読み込むところから始め、コンソール、文字列と数値、let と const、データ型、型変換、比較・論理・三項・null 合体演算子を学ぶ全 23 レッスン(335 分)の入門コースです。最後は、変数と式を使ってプロフィールの見出し用の値を組み立てます。if 文、配列とループ、DOM 操作は後続コースで扱います。

1
はじめての JavaScript
01. HTML に JavaScript を読み込む5分
02. console.log で表示する15分
03. 文字列を連結する15分
04. 四則演算15分
05. コメントで意図を残す15分
06. エラーを読んでみる15分
07. つくる 起動メッセージ20分
08. 第1章まとめクイズ10分
2
変数とデータ型
01. let と const を使い分ける15分
02. typeof で型を調べる15分
03. 型を変換する15分
04. 真偽値と falsy な値15分
05. null と undefined を見分ける15分
06. テンプレートリテラル15分
07. つくる プロフィールを変数にする20分
08. 第2章まとめクイズ10分
3
演算子と式
01. 比較演算子と ===15分
02. 論理演算子と短絡評価15分
03. 三項演算子で簡潔に15分
04. ?? で既定値を用意する15分
05. 演算子の優先順位15分
06. つくる 表示名を決める20分
07. 第3章まとめクイズ10分

typeof で型を調べる

typeof で型を調べる
解説

このレッスンで分かること

  • typeof 値 で、その値の型名を取り出せます
  • 返ってくるのは型そのものではなく "string" "number" のような文字列です

エラーは出ないのに答えが合わない

同じ + でも、文字列どうしなら連結、数値どうしなら足し算になります。

JavaScript

console.log("3" + 3); // "33" 連結された console.log(3 + 3); // 6 足し算になった

どちらもエラーになりません。値の性質、つまり 型 が違うだけで結果が変わり、しかも静かに通ってしまいます。だから「今この変数には何の型が入っているか」を確かめる道具が要ります。

JavaScript の値は、文字列 string、数値 number、真偽値 boolean、まだ値が入っていない undefined、それにオブジェクトや配列や関数といった種類に分かれます。整数と小数の区別は無く、3 も 3.5 も同じ number です。

typeof で中身の種類を聞く

typeof は値の型名を返す演算子です。関数ではないので括弧は要りませんが、typeof (値) と書いても動きます。

JavaScript

const author = "山田 太郎"; const postCount = 12; const isPublic = true; console.log(typeof author); // "string" console.log(typeof postCount); // "number" console.log(typeof isPublic); // "boolean"

返ってくるのは型そのものではなく、型の名前が入った 文字列 です。typeof author の結果は string という 6 文字の文字列なので、比べる相手も引用符で囲んだ文字列にします。

typeof の結果を何度か使うなら、一度変数に受けておくと読みやすくなります。前のレッスンの原則どおり、途中で書き換えないので const を選びます。

関数を呼ぶときに引数を渡さないと、その引数は undefined になります。渡し忘れはエラーにならず静かに進み、typeof は "undefined" を返します。

確かめるのは出どころが見えない値だけ

自分で const postCount = 12; と書いたばかりの変数に typeof を使う必要はありません。型は読めば分かるからです。役に立つのは、入力欄から届いた値や、引数として渡ってきた値のように、中身を目で確かめられない場面です。

JavaScript

const inputText = "12"; // 入力欄から届いた値 console.log(typeof inputText); // "string" 数字に見えても文字列 console.log(inputText + 1); // "121" 足し算にならない

入力欄の値は、見た目が数字でも文字列として届きます。計算が合わないときは、まず型を書き出してみてください。原因の半分はここで見つかります。

解説

現場の話 受け取った値が数値のつもりで文字列だった、という事故は珍しくありません。計算結果がおかしいときに console.log(typeof 値) を挟むのは、現場でも定石の一手です。

よくある間違い

いちばん多いのは、typeof の結果を型そのものと比べてしまうケースです。

JavaScript

console.log(typeof postCount === number); // ReferenceError number が未定義 console.log(typeof postCount === "number"); // true 文字列と比べれば正しく判定できる

typeof が返すのは文字列なので、比べる相手も引用符で囲みます。引用符を外した number は、どこにも宣言されていない名前として扱われます。

要件

  1. 関数名は typeReport、引数は label (文字列) と value (任意の値) の 2 つ
  2. 型名は typeof value の結果をそのまま使う。null を特別扱いしない
  3. 戻り値は name は string です の形の文字列

入出力例

typeReport("name", "山田 太郎") → "name は string です" typeReport("workCount", 3) → "workCount は number です" typeReport("published", true) → "published は boolean です" typeReport("profile", null) → "profile は object です" typeReport("bio") → "bio は undefined です"

ヒント

typeof は関数ではなく演算子なので typeof value と書きます

結果を const type に受けてから連結すると読みやすくなります

null を "null" に直そうとしないでください。この問題では typeof の結果をそのまま使います

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/05/19·更新 2026/08/26

関連レッスン

  • 型を変換する

    Number と String で文字列と数値を相互に変換します。入力欄から届いた文字列の数字を、計算に使える形に直せるようになります。

  • 真偽値と falsy な値

    偽として扱われる 6 つの値を押さえます。空文字や 0 が偽になる理由を説明でき、未入力チェックの下ごしらえができるようになります。

  • null と undefined を見分ける

    まだ値が入っていない undefined と、意図的に空にした null の違いを整理します。未設定のプロフィール項目をどちらで表すか判断できるようになります。

  • テンプレートリテラル

    バッククォートで囲んだ文字列に変数を埋め込む書き方を学びます。改行を含む自己紹介文を読みやすいコードで組み立てられるようになります。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 変数データに名前をつけて参照する仕組み
  • JavaScriptWeb で動的な振る舞いを担う言語
  • オブジェクトキーと値のペアで構造を作るデータ
  • 配列サイズ固定の同型データの集まり
  • 関数処理に名前を付けて再利用できる単位
  • 演算子//は切り捨て除算(7 // 2 = 3)。
  • 引数位置引数=順番で渡す。
  • 戻り値呼び出し元への返答を表す点線矢印
main.js
学習モード
エディタを読み込んでいます

メモ

typeof で型を調べる

⌘S で保存