JavaScriptの動的型付けとは?同じ変数に異なるデータ型を代入する方法
JavaScriptの動的型付けとは?
JavaScriptは動的型付け(dynamic typing)を採用しているプログラミング言語です。これは、変数を宣言する際にデータ型を固定しておく必要がなく、同じ変数に文字列・整数・小数など、異なるデータ型の値を自由に代入できることを意味します。
JavaやC言語のような静的型付け言語では、変数の型は宣言の時点で決定し、後から変更することはできません。一方、JavaScriptでは変数はあくまで「値を入れる入れ物」であり、中に入る値によってその型が実行時に自動的に決まります。この柔軟性こそが、JavaScriptの大きな特徴のひとつです。
サンプルコード:1つの変数に異なる型を代入する
次のコードでは、1つの変数 val に、文字列・整数・小数という3種類の値を順番に代入しています。
<!DOCTYPE html>
<html>
<head>
<script>
var val;
// 文字列を代入
val = "Amit";
document.write("String: " + val);
// 数値(整数)を代入
val = 20;
document.write("<br>Number: " + val);
// 数値(小数)を代入
val = 40.90;
document.write("<br>Number with decimals: " + val);
</script>
</head>
<body>
</body>
</html>
実行結果
ブラウザでこのページを開くと、画面には次のように表示されます。
String: Amit
Number: 20
Number with decimals: 40.9
コードのポイント
var val;の直後は、変数valの値も型も未定義(undefined)です。val = "Amit";を実行した瞬間に string 型(文字列)になります。- その後に数値を代入すれば number 型へと変わり、型は代入のたびに更新されます。
- JavaScriptでは整数も小数も、まとめて「number」という1つの型で扱われる点に注意しましょう。
typeof演算子で型を確認する
現在その変数にどの型の値が入っているかは、typeof 演算子で簡単に調べることができます。
var val = "Amit";
console.log(typeof val); // string
val = 20;
console.log(typeof val); // number
val = true;
console.log(typeof val); // boolean
動的型付けのメリットと注意点
メリット
- 型宣言が不要なため、コードを短くシンプルに書ける
- データを柔軟に扱えるので、小規模なスクリプトやプロトタイプ開発に向いている
注意点
- 暗黙的な型変換(型強制)が起こりやすく、思わぬバグの原因になることがある
- 型に関するミスを、実際に実行するまで発見できない場合がある
こうした弱点を補うため、静的型付けを導入できるTypeScriptを採用する開発チームも近年増えています。
まとめ
JavaScriptの変数は特定の型に縛られず、代入された値によって常に型が決まる「動的型付け」の言語です。同じ変数に文字列でも数値でも自由に代入できる柔軟さがある一方で、意図しない型変換には注意が必要です。typeof を活用して型を確認する習慣をつければ、より安全で読みやすいコードが書けるようになります。
-
C#で動的データ型(dynamic型)を定義する方法を解説
C#のdynamic型とはC#では、dynamic型の変数に任意の型の値を格納することができます。この型の変数に対する型チェックは、コンパイル時ではなく実行時(ランタイム)に行われるのが大きな特徴です。dynamic型はC# 4.0で導入された機能で、これを使うことでコンパイル時の型チェックを回避できます。実行時に実際の型が判定されるため、柔軟なコーディングが可能になります。dynamic型の宣言方法dynamic型を宣言するための基本的な構文は以下のとおりです。dynamic <変数名> = 値;たとえば、次のように記述します。dynamic a = 25;object型との違い
-
Python 3の標準データ型とは?数値・シーケンス・辞書の基本をわかりやすく解説
Python 3の標準データ型の概要Python 3に標準で用意されているデータ型は、大きく分けて「数値型」「シーケンス型」「辞書(ディクショナリ)型」の3つに分類できます。辞書はキーと値のペアを格納するコレクションであり、Pythonプログラミングにおいて最も頻繁に使われるデータ構造の一つです。数値型(Numeric Types)数値型には「整数(int)」「浮動小数点数(float)」「複素数(complex)」の3種類があります。整数(int):小数点を含まない整数値です。例:10、-10浮動小数点数(float):小数部分を持つ実数です。例:1.55、0.005複素数(complex)