Topiqlo ロゴ

データ型

公開日: 2025/06/02

データ型とは?プログラミングに欠かせない型の基本と活用法

はじめに

プログラミングでは「値の種類」を意識することがとても重要です。たとえば「文字列」と「数値」を同じように扱おうとするとエラーや意図しない挙動が起こることがあります。こうした「値の型」を分類・管理する考え方が「データ型」です。この記事では、データ型の基本と、言語による違いや応用について解説します。

基本情報・概要

データ型(data type)とは、プログラム内で扱う値がどのような種類であるかを示す分類です。主に次のような用途があります:

  • メモリの使い方を最適化する
  • 計算や操作が可能かどうかを判断する
  • バグや型の不一致を防ぐ

たとえば JavaScript では、次のようなデータ型が基本です:

const name = "Taro";        // 文字列(String)
const age = 30;             // 数値(Number)
const isStudent = true;     // 真偽値(Boolean)
const scores = [80, 90];    // 配列(Array)
const user = { name: "Taro" }; // オブジェクト(Object)
const nothing = null;       // null
let notDefined;             // undefined

比較・分類・特徴の表形式まとめ

型名内容
String文字の列
"Hello"
Number数値(整数・小数)
42
,
3.14
Boolean真偽値(true/false)
true
,
false
Null「値が存在しない」ことを明示
null
Undefined変数が未定義
undefined
Objectキーと値の集合、複合データ型
{ name: "Taro" }
Array複数の値のリスト(実はObjectの一種)
[1, 2, 3]
Function関数として実行可能な値
function () {}
Symbol一意な識別子(ES6以降)
Symbol("id")
BigInt巨大な整数を扱う(ES2020以降)
1234567890123456789n

深掘り解説

静的型付けと動的型付け

  • 静的型付け(TypeScript、Java、C++など)
    変数に型を明示的に指定する。コンパイル時に型チェックが行われる。

    let name: string = "Hanako";

  • 動的型付け(JavaScript、Pythonなど)
    変数に型指定が不要。実行時に型が決定される。

    let name = "Hanako";

型変換(Type Casting / Coercion)

言語によっては、暗黙的に型変換が行われることがあります。これは便利な一方で、バグの温床になることもあります。

console.log("5" + 1);   // → "51"(文字列に変換される)
console.log("5" - 1);   // → 4(数値に変換される)

型変換を明示するには以下のようにします:

Number("42");        // → 42
String(100);         // → "100"

応用・発展的な使い方

ユーザー定義型(カスタム型)

TypeScriptなどでは複数の型を組み合わせて「型の設計」ができます。

type User = {
    name: string;
    age: number;
    isAdmin?: boolean;
};

ジェネリクス(Generics)

関数やクラスにおいて、汎用的な型を定義できる仕組みです。

function identity<T>(arg: T): T {
    return arg;
}

型ガードと型推論

  • 型ガードは実行時に型を判別して処理を分ける方法です。
  • 型推論は明示的な型がなくても、コンパイラが型を推測する機能です。

よくある誤解と注意点

  • null
    undefined
    の違いを混同しないように
  • 数値
    0
    や空文字
    ""
    false
    とみなされるため注意
  • 配列もオブジェクトの一種である(typeof で "object")

まとめ

データ型は、プログラミングの基本でありながら、奥が深い概念です。型を意識せずに書いたコードは、意図しないバグを引き起こす原因になります。静的型付けや型注釈を活用しつつ、言語特有の型の扱いにも注意して、安全で予測可能なコードを書く習慣をつけましょう。