カテゴリ: JavaScript 更新日: 2026/02/03

JavaScriptのデータ型の違いを表で比較しよう(一覧解説)

JavaScriptのデータ型の違いを表で比較しよう(一覧解説)
JavaScriptのデータ型の違いを表で比較しよう(一覧解説)

先生と生徒の会話形式で理解しよう

生徒

「JavaScriptにはいろいろなデータ型があるって聞きましたが、何がどう違うんですか?」

先生

「いい質問ですね。データ型は、プログラムで扱う値の種類を表します。JavaScriptでは主に7つの基本データ型がありますよ。」

生徒

「えっ、そんなにあるんですか!?一つずつ見てみたいです!」

先生

「じゃあ、データ型の一覧を表で整理しながら説明していきましょう!」

1. JavaScriptの基本的なデータ型とは?

1. JavaScriptの基本的なデータ型とは?
1. JavaScriptの基本的なデータ型とは?

JavaScriptのデータ型は、値の種類や扱い方を分類するものです。主に次のような型があります。

  • 数値型(Number): 数を表す型
  • 文字列型(String): 文字や文章を表す型
  • 真偽値型(Boolean): trueまたはfalseを表す型
  • 未定義型(Undefined): 値が設定されていない状態
  • ヌル型(Null): 意図的に「何もない」とする型
  • 記号型(Symbol): 一意な識別子を表す型
  • BigInt型: 非常に大きな整数を扱うための型

2. データ型の違いを一覧表で比較

2. データ型の違いを一覧表で比較
2. データ型の違いを一覧表で比較

それぞれのデータ型の違いを下の表にまとめました。

データ型 型名 特徴・使いどころ
数値 Number 10, 3.14, -5 整数や小数を扱う
文字列 String "こんにちは", 'Hello' 文章や単語などの文字を扱う
真偽値 Boolean true, false はい・いいえ、条件分岐などに使用
未定義 Undefined let x; console.log(x); 変数に値が設定されていない状態
ヌル Null null 「何もない」ことを明示的に表す
記号 Symbol Symbol("id") ユニークな識別子として使う
大きな整数 BigInt 123456789012345678901234567890n 非常に大きな整数を扱う

3. typeof演算子で型を確認してみよう

3. typeof演算子で型を確認してみよう
3. typeof演算子で型を確認してみよう

JavaScriptでは、typeofという演算子を使って変数の型を調べることができます。


let name = "太郎";
console.log(typeof name); // "string"

let age = 30;
console.log(typeof age); // "number"

let isStudent = true;
console.log(typeof isStudent); // "boolean"

string
number
boolean

4. 特殊な注意点:nullの型は「object」になる

4. 特殊な注意点:nullの型は「object」になる
4. 特殊な注意点:nullの型は「object」になる

JavaScriptでは、nullの型をtypeofで調べると「object」と表示されます。これはJavaScriptの仕様であり、バグではありません。


let nothing = null;
console.log(typeof nothing); // "object"

object

この点は初心者が混乱しやすいポイントなので、覚えておきましょう。

まとめ

まとめ
まとめ

ここまでJavaScriptにおける主要なデータ型について詳しく解説してきました。プログラミングの基礎とも言える「型」の理解は、単に知識として覚えるだけでなく、実際の開発において予期せぬエラーを防ぐために非常に重要です。JavaScriptは動的型付け言語であり、変数の型が実行時に決まるという柔軟性を持っていますが、その分、数値と文字列を混ぜて計算してしまったり、nullundefinedの扱いでミスをしたりすることが多々あります。

データ型を使いこなすためのポイント

日常的なコーディングで最も頻繁に利用するのは、Number型(数値)、String型(文字列)、そして条件分岐の要となるBoolean型(真偽値)の3つです。しかし、中規模以上のアプリケーションを開発するようになると、情報の欠如を示すnullundefinedの使い分け、あるいはビット精度の高い計算が必要な際のBigInt型、オブジェクトのプロパティ競合を避けるためのSymbol型といった、より高度なデータ型の知識が求められるようになります。

プリミティブ型とオブジェクト型の違い

今回紹介した7つの型は「プリミティブ型」と呼ばれ、これら以外に「オブジェクト型(参照型)」が存在します。配列(Array)や関数(Function)も実はオブジェクトの一種です。プリミティブ型は値そのものを保持しますが、オブジェクト型はメモリ上の参照(住所のようなもの)を保持するという根本的な違いがあります。この違いを意識できるようになると、JavaScriptの挙動をより深く理解できるようになります。

実践的な型判定のコード例

開発現場では、APIから取得したデータが期待通りの型であるかをチェックする「バリデーション」が欠かせません。以下に、複数のデータ型を判定し、それぞれの型に応じた処理を行う関数のサンプルコードを掲載します。


/**
 * 与えられた値の型を判定し、適切なメッセージを返す関数
 * @param {any} value - 判定する値
 */
function checkValueType(value) {
  const type = typeof value;

  if (value === null) {
    console.log("この値は null です(typeofの結果は object ですが意図的な空です)");
    return;
  }

  switch (type) {
    case "string":
      console.log("これは文字列型です。長さは " + value.length + " です。");
      break;
    case "number":
      console.log("これは数値型です。2倍にすると " + (value * 2) + " になります。");
      break;
    case "boolean":
      console.log("これは真偽値型です。現在の値は " + value + " です。");
      break;
    case "undefined":
      console.log("値が定義されていません。");
      break;
    case "bigint":
      console.log("これはBigInt型です。非常に大きな整数を扱っています。");
      break;
    case "symbol":
      console.log("これはSymbol型です。一意な識別子として機能します。");
      break;
    default:
      console.log("その他の型(objectなど)です。型名: " + type);
  }
}

// テスト実行
checkValueType("JavaScript学習中");
checkValueType(2026);
checkValueType(true);
checkValueType(null);
checkValueType(undefined);
checkValueType(100n);

上記のコードを実行した結果は、コンソールに以下のように出力されます。


これは文字列型です。長さは 10 です。
これは数値型です。2倍にすると 4052 になります。
これは真偽値型です。現在の値は true です。
この値は null です(typeofの結果は object ですが意図的な空です)
値が定義されていません。
これはBigInt型です。非常に大きな整数を扱っています。

TypeScriptでの型定義の紹介

近年では、JavaScriptに静的な型付けを導入したTypeScriptが主流となっています。TypeScriptを使うことで、開発中(コンパイル時)に型の不整合を見つけることができ、バグの混入を劇的に減らすことが可能です。基本的なデータ型の指定方法は以下の通りです。


// TypeScriptでの型アノテーションの例
let userName: string = "山田太郎";
let userAge: number = 25;
let isActive: boolean = true;
let bigNumber: bigint = 9007199254740991n;

// 関数の引数と戻り値にも型を指定できる
function greet(name: string): string {
  return "こんにちは、" + name + "さん!";
}

console.log(greet(userName));

このように型を明示することで、プログラムの意図が明確になり、他の開発者がコードを読む際の手助けにもなります。JavaScriptの基礎を固めた後は、ぜひTypeScriptにも挑戦してみてください。

さらなる学習に向けて

データ型の特性を理解したら、次は「型変換(キャスト)」についても学んでみましょう。文字列の "100" と数値の 100 を足したときに、結果が "100100" になるのか 200 になるのか、といった挙動を知ることで、より正確なロジックを組めるようになります。一歩ずつ、確実にスキルアップしていきましょう。

先生と生徒の振り返り会話

生徒

「先生、ありがとうございました!JavaScriptのデータ型って、意外と奥が深いんですね。特にnullの型がobjectになるっていうのは、知らなかったら絶対バグだと思っちゃいます(笑)」

先生

「ははは、そうですよね。それは歴史的な経緯による仕様なのですが、今でも有名な『JavaScriptの落とし穴』の一つなんです。でも、理由を知っていれば怖くありませんよ。」

生徒

「そうですね!あと、undefinednullの違いも少しずつ分かってきました。値がまだ無いのか、あえて空にしているのかっていう使い分けが大事なんですね。」

先生

「その通りです。素晴らしい洞察ですね。型を意識してコードを書くようになると、自然とエラーの少ない綺麗なプログラムが書けるようになります。次は実際にこれらの型を使って、計算や文字列の加工に挑戦してみましょうか。」

生徒

「はい!もっと複雑な処理も書けるようになりたいので、頑張ります。TypeScriptの話も少し出てきましたが、型をガッチリ決めるのも面白そうですね。」

先生

「良い意気込みですね。基本がしっかりしていれば、新しい技術の習得もスムーズですよ。もし途中で分からなくなったら、いつでも今回の表に戻って確認してくださいね。」

生徒

「ありがとうございます!まずはこの7つの型を完璧に使いこなせるように練習します!」

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう