JavaScriptのデータ型の違いを表で比較しよう(一覧解説)
生徒
「JavaScriptにはいろいろなデータ型があるって聞きましたが、何がどう違うんですか?」
先生
「いい質問ですね。データ型は、プログラムで扱う値の種類を表します。JavaScriptでは主に7つの基本データ型がありますよ。」
生徒
「えっ、そんなにあるんですか!?一つずつ見てみたいです!」
先生
「じゃあ、データ型の一覧を表で整理しながら説明していきましょう!」
1. JavaScriptの基本的なデータ型とは?(プリミティブ型)
JavaScriptで扱うデータには「型(タイプ)」という分類があります。これは、コンピュータに「これは数値だよ」「これは文章だよ」と正しく伝えるためのルールです。
2026年現在のモダンな開発において、基本となる7つのデータ型(プリミティブ型)を初心者の方向けに分かりやすく解説します。
各データ型の具体的なイメージとサンプルコード
1. 数値型(Number)
整数や小数を扱います。計算が必要なデータはこの型を使います。
let price = 1500; // 整数
let tax = 0.1; // 小数
2. 文字列型(String)
名前やメッセージなどの文章です。シングルクォートやダブルクォートで囲みます。
let userName = "田中太郎";
let message = 'こんにちは!';
3. 真偽値型(Boolean)
「正しい(true)」か「正しくない(false)」かの2つの状態だけを持つ型です。ログイン状態の判定などに使われます。
let isLoggedIn = true; // ログイン中
let hasError = false; // エラーなし
4. 未定義型(Undefined)
変数は作ったけれど、まだ何も値を入れていない「空っぽ」の状態です。
let test;
console.log(test);
undefined
5. ヌル型(Null)
「値が存在しない」ことをプログラマが意図的に示した状態です。Undefinedと似ていますが、明示的に「空」にしたい時に使います。
6. 記号型(Symbol)
絶対に他と重複しない「一意な値」を作ります。プログラムの深い部分で識別子として使われる特殊な型です。
7. BigInt型
通常の数値型(Number)では扱いきれないほど、桁数が非常に大きな整数を扱うための型です。数字の末尾に「n」を付けて表現します。
2. JavaScriptのデータ型を一覧表で比較
JavaScriptで扱うデータには、いくつかの「型(種類)」があります。これらを理解しておくことで、計算ミスや予期せぬエラーを防ぐことができます。まずは、代表的な7つのデータ型を一覧で見てみましょう。
| データ型 | 型名 | 具体的な例 | 役割・使いどころ |
|---|---|---|---|
| 数値 | Number | 100, -5, 0.1 | 金額やカウント、計算に使用 |
| 文字列 | String | "User", '10' | 名前やメッセージなどテキストを扱う |
| 真偽値 | Boolean | true, false | 「はい」か「いいえ」の判定に使用 |
| 未定義 | Undefined | undefined | 値がまだ決まっていない状態 |
| ヌル | Null | null | 「値がない」ことをあえて示す状態 |
| 記号 | Symbol | Symbol() | 他と重複しない固有の識別子 |
| 大きな整数 | BigInt | 9007...n | 通常の数値では扱えない巨大な数 |
初心者向け:データ型を実際に使ってみよう
プログラミング未経験の方が特につまずきやすいのが、「数値の10」と「文字列の"10"」の違いです。数値は計算できますが、文字列は単なる文字として連結されます。以下のサンプルコードでその動きを確認してみましょう。
// 数値型(Number)の計算
let price = 1000;
let tax = 1.1;
console.log(price * tax); // 1100
// 文字列型(String)の結合
let userName = "田中";
let message = "さん、こんにちは!";
console.log(userName + message); // 田中さん、こんにちは!
// 文字列として数字を扱うとどうなる?
let num1 = "10";
let num2 = "20";
console.log(num1 + num2); // 1020(計算ではなく文字がつながる)
プログラムの実行結果
1100
田中さん、こんにちは!
1020
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」になる
JavaScriptでは、nullの型をtypeofで調べると「object」と表示されます。これはJavaScriptの仕様であり、バグではありません。
let nothing = null;
console.log(typeof nothing); // "object"
object
この点は初心者が混乱しやすいポイントなので、覚えておきましょう。
まとめ
ここまでJavaScriptにおける主要なデータ型について詳しく解説してきました。プログラミングの基礎とも言える「型」の理解は、単に知識として覚えるだけでなく、実際の開発において予期せぬエラーを防ぐために非常に重要です。JavaScriptは動的型付け言語であり、変数の型が実行時に決まるという柔軟性を持っていますが、その分、数値と文字列を混ぜて計算してしまったり、nullやundefinedの扱いでミスをしたりすることが多々あります。
データ型を使いこなすためのポイント
日常的なコーディングで最も頻繁に利用するのは、Number型(数値)、String型(文字列)、そして条件分岐の要となるBoolean型(真偽値)の3つです。しかし、中規模以上のアプリケーションを開発するようになると、情報の欠如を示すnullやundefinedの使い分け、あるいはビット精度の高い計算が必要な際の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の落とし穴』の一つなんです。でも、理由を知っていれば怖くありませんよ。」
生徒
「そうですね!あと、undefinedとnullの違いも少しずつ分かってきました。値がまだ無いのか、あえて空にしているのかっていう使い分けが大事なんですね。」
先生
「その通りです。素晴らしい洞察ですね。型を意識してコードを書くようになると、自然とエラーの少ない綺麗なプログラムが書けるようになります。次は実際にこれらの型を使って、計算や文字列の加工に挑戦してみましょうか。」
生徒
「はい!もっと複雑な処理も書けるようになりたいので、頑張ります。TypeScriptの話も少し出てきましたが、型をガッチリ決めるのも面白そうですね。」
先生
「良い意気込みですね。基本がしっかりしていれば、新しい技術の習得もスムーズですよ。もし途中で分からなくなったら、いつでも今回の表に戻って確認してくださいね。」
生徒
「ありがとうございます!まずはこの7つの型を完璧に使いこなせるように練習します!」