データ型
公開日: 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 | 文字の列 |
|
Number | 数値(整数・小数) | ,
|
Boolean | 真偽値(true/false) | ,
|
Null | 「値が存在しない」ことを明示 |
|
Undefined | 変数が未定義 |
|
Object | キーと値の集合、複合データ型 |
|
Array | 複数の値のリスト(実はObjectの一種) |
|
Function | 関数として実行可能な値 |
|
Symbol | 一意な識別子(ES6以降) |
|
BigInt | 巨大な整数を扱う(ES2020以降) |
|
深掘り解説
静的型付けと動的型付け
-
静的型付け(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")
まとめ
データ型は、プログラミングの基本でありながら、奥が深い概念です。型を意識せずに書いたコードは、意図しないバグを引き起こす原因になります。静的型付けや型注釈を活用しつつ、言語特有の型の扱いにも注意して、安全で予測可能なコードを書く習慣をつけましょう。