さまざまなデータ型

 JavaScript にはさまざまなデータ型が用意されており、プログラムを書くうえで重要な基礎知識となります。値が数値なのか文字列なのかといった型の違いを理解しておくと、バグの予防やコードの見通し向上につながります。ここでは、JavaScript の代表的なデータ型の一部を紹介します。

1.プリミティブ型とオブジェクト

 JavaScript には、7つのプリミティブ型と 1つのオブジェクト型が存在します。プリミティブ型とは「基本的な(原始的な)型」という意味で、下記のような種類があります。

種類内容
Number数値(整数、小数ともに扱う)
String文字列
Boolean真偽値 (true/false)
Null「何もない」ことを表す値
Undefined未定義の値
BigInt非常に大きい整数値
Symbolシンボル値

 このうち最もよく使われるのが Number, String, Boolean, Null, Undefined などです。オブジェクト型(配列や関数、日付など)も非常に重要ですが、ここではまずプリミティブ型を中心に見ていきます。

2.Number 型(数値)

 JavaScript では、整数も小数も同じ Number 型で扱います。内部的には 64bit の浮動小数点数が使われているため、小数点以下の計算で誤差が生じる点には注意が必要です。

2.1. 計算誤差の例

console.log(0.1 + 0.2); // 0.30000000000000004

このように、実際の計算結果と微妙に異なる数値が出力されることがあります。

2.2. 安全に表現できる範囲

 JavaScript の Number 型は、±9,007,199,254,740,991 (±253 - 1) までの整数を正確に扱えます。これを超えると、正確な値を保持できなくなります。

定数名
Number.MIN_SAFE_INTEGER-9,007,199,254,740,991
Number.MAX_SAFE_INTEGER9,007,199,254,740,991

3.数値リテラルの書き方

 プログラム中で数値を直接記述する方法を「数値リテラル」と呼びます。整数と浮動小数点のそれぞれにいくつかの表記法があります。

3.1. 整数リテラル

書き方の例意味
1234正の整数 1234
-1234負の整数 -1234
0xFF16進数表記 (255を表す)
0778進数表記 (63を表す)
0b112進数表記 (3を表す)

3.2. 浮動小数点リテラル

書き方の例説明
12.34プラスの浮動小数点数 12.34
-12.34マイナスの浮動小数点数 -12.34
.340.34 と同じ (先頭 0 を省略)
12.12.0 と同じ (末尾 0 を省略)
1.234E31.234 × 10^3 = 1234
1.234e-31.234 × 10^-3 = 0.001234

4.具体的なHTMLサンプル

 次のサンプル「dataTypesSample.html」では、コンソールにいろいろな数値型や計算結果を表示させる簡単な例を示しています。ブラウザで開いて開発者ツールを確認し、結果をチェックしてみてください。

【dataTypesSample.html】

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>dataTypesSample.html</title>
</head>
<body>
  <h1>さまざまなデータ型の例</h1>
  <p>ブラウザの開発者ツールを開き、コンソールの出力を確認してください。</p>

  <script>
    // 1. Number型の例
    const normalNumber = 123.45;
    const hexNumber = 0xFF;   // 16進数 → 255
    const binNumber = 0b11;   // 2進数 → 3

    console.log('通常の数値:', normalNumber);
    console.log('16進数(0xFF):', hexNumber);
    console.log('2進数(0b11):', binNumber);

    // 浮動小数点数の誤差
    console.log('0.1 + 0.2 の結果:', 0.1 + 0.2);

    // 安全に表現できる最大・最小の範囲
    console.log('Number.MAX_SAFE_INTEGER:', Number.MAX_SAFE_INTEGER);
    console.log('Number.MIN_SAFE_INTEGER:', Number.MIN_SAFE_INTEGER);

    // 2. 他のプリミティブ型の例
    const str = "こんにちは";
    const boolVal = true;
    const nullVal = null;
    let undefinedVal; // 値を代入しない場合、undefined になる

    console.log('String:', str);
    console.log('Boolean:', boolVal);
    console.log('Null:', nullVal);
    console.log('Undefined:', undefinedVal);

    // 3. 大きな整数を扱う BigInt (参考)
    // 通常の Number 型を超える大きな値には BigInt を利用
    const bigIntVal = 9007199254740992n; // 2^53 を超えた値
    console.log('BigInt:', bigIntVal);
  </script>
</body>
</html>

実行結果

デバッグコンソールの出力

通常の数値: 123.45
16進数(0xFF): 255
2進数(0b11): 3
0.1 + 0.2 の結果: 0.30000000000000004
Number.MAX_SAFE_INTEGER: 9007199254740991
Number.MIN_SAFE_INTEGER: -9007199254740991
String: こんにちは
Boolean: true
Null: null
Undefined: undefined
BigInt: 9007199254740992n

まとめ

 JavaScript には、基本的に数値を表す型として Number があり、小数・整数問わず 64bit の浮動小数点数で処理します。そのため、大きな桁数の正確な計算や小数の計算では誤差に注意する必要があります。また、さまざまな書き方による数値リテラルもサポートされているので、使いやすい表記法を選んでコードを読みやすく書くことが大切です。

 数値型以外にも、文字列や真偽値など日常的に使用するプリミティブ型があるため、データ型の基礎をしっかり理解することで、よりスムーズなプログラム開発が可能になります。