JavaScriptにおける「変数(Variables)」は、プログラミングにおいて最も基本的で重要な概念の一つです。変数は、データを格納するための「名前付きの容器」として考えることができ、そのデータはプログラムの実行中に変更可能です。変数を使用することで、値を一時的に保存し、それを必要に応じて参照したり操作したりすることができます。JavaScriptは動的型付け言語であるため、変数に格納されるデータの型は固定されておらず、実行時に変わる可能性があります。
本記事では、JavaScriptにおける変数の基本から始まり、変数の宣言方法、スコープ、型、そして変数の使い方に関する詳細を紹介します。
変数の宣言方法
JavaScriptでは、変数を宣言するためのキーワードとして、var、let、constの3つがあります。それぞれの違いについて詳しく見ていきましょう。
1. var
varはJavaScriptで最も古くから使用されている変数宣言の方法です。しかし、varにはいくつかの問題があり、現代のJavaScriptではあまり推奨されません。主な問題はスコープに関連しています。varで宣言された変数は、関数スコープまたはグローバルスコープを持ち、ブロックスコープ(例えば、if文やfor文の中で宣言された変数)を無視するため、予期しない挙動を引き起こすことがあります。
javascriptvar x = 10;
if (true) {
var x = 20; // 同じ変数xを上書きしてしまう
}
console.log(x); // 20
2. let
letはES6(ECMAScript 2015)で導入され、よりモダンな方法で変数を宣言するためのキーワードです。letはブロックスコープを持つため、例えばif文内で宣言された変数は、そのブロック内でのみ有効となり、外部のスコープに影響を与えません。
javascriptlet x = 10;
if (true) {
let x = 20; // 新しいxがブロックスコープ内で宣言される
console.log(x); // 20
}
console.log(x); // 10
3. const
constもES6で導入され、定数を宣言するために使用されます。constで宣言された変数は再代入ができません。letと同様に、ブロックスコープを持ちます。再代入を避けることで、意図しない値の変更を防ぐことができます。
javascriptconst x = 10;
x = 20; // エラー: 再代入はできません
変数のスコープ
変数のスコープは、その変数がどこで有効かを決定します。JavaScriptには大きく分けて、グローバルスコープ、関数スコープ、そしてブロックスコープがあります。
-
グローバルスコープ: 変数がプログラム全体でアクセス可能な範囲。
varで宣言された変数がこのスコープに該当します。 -
関数スコープ: 変数が関数内でのみ有効な範囲。
varを使って関数内で宣言された変数は、関数外からアクセスできません。 -
ブロックスコープ: 変数が
if文やfor文などのブロック内でのみ有効な範囲。letやconstを使用した変数宣言はこのスコープに該当します。
javascriptlet x = 10;
if (true) {
let x = 20; // 新しいxがブロックスコープ内で宣言される
console.log(x); // 20
}
console.log(x); // 10
データ型と変数
JavaScriptでは、変数に格納できるデータ型は様々です。主なデータ型には、以下のようなものがあります。
-
プリミティブ型: 数字(
number)、文字列(string)、真偽値(boolean)、null、undefined、Symbol、BigInt -
オブジェクト型: 配列(
Array)、関数(Function)、日付(Date)など
javascriptlet name = "Alice"; // string型
let age = 25; // number型
let isActive = true; // boolean型
let person = { name: "Bob", age: 30 }; // オブジェクト型
JavaScriptでは変数が格納するデータ型を明示的に指定する必要はなく、代入する値に応じて自動的に型が決まります。これを「動的型付け」と呼びます。
変数の再代入と型の変更
JavaScriptでは、変数に新しい値を再代入することができます。また、動的型付けの特徴により、変数に格納されるデータの型を変更することも可能です。
javascriptlet x = 10; // number型
x = "Hello"; // string型に変更
x = true; // boolean型に変更
まとめ
JavaScriptにおける変数は、プログラム内でデータを扱う基本的な単位です。var、let、constの3つの宣言方法を理解することは、適切な変数の使い方を習得する上で非常に重要です。また、変数のスコープや型についても知識を深めることで、予期しないバグを避け、より効率的で安定したコードを書くことができます。
JavaScriptは動的型付けの言語であり、変数の型を意識せずにデータを柔軟に扱うことができますが、それに伴う注意点もあるため、変数を適切に使用するためのベストプラクティスを学ぶことが求められます。

