JavaScriptの変数 〜データを保管する「箱」の扱い〜

JavaScript学習ガイド

今回は、JavaScriptを学ぶうえで避けては通れない「変数」について整理していきます。

どんなに複雑な処理を書けるようになっても、
この“変数”の理解があいまいだと、思わぬエラーにつながることがあります。

でも安心してください。

難しそうに聞こえますが、
考え方はとてもシンプルなんです。

「なんとなく使っている」状態から、
「自信をもって使える」状態へ。

一緒に土台を固めていきましょう!


変数とは?

変数とは、データに名前をつけて保存しておく仕組みのこと。

よく「名前付きの箱」に例えられます。

const name = "React太郎";

このように、データを保存するために新しく変数を作ることを
「変数を宣言する」 といいます。

この場合、

  • "React太郎" が中身(データ)
  • name変数名(箱の名前)

というイメージです。


= の右側の値を、左側の変数に入れることを
「代入する」 といいます。

つまりこの1行では、

  • nameという変数を宣言して
  • "React太郎" の文字列をnameという変数に代入している

ということになります。


一度変数に値を入れておけば、あとから何度でも取り出せます。

console.log(name);

プログラムは、

・データを保存する
・必要なときに取り出す
・場合によっては書き換える

という流れで動いています。

その出発点になるのが「変数」です。


var – かつての主役 –

昔のJavaScriptでは、変数を作る方法は var だけでした。

var user = "太郎";
var user = "次郎"; // エラーにならない

同じ名前でも、もう一度作れてしまいます。


さらに…

user = "上書き完了";

どこからでも中身を変更できます。


一見便利そうですが、
これが思わぬバグの原因になっていました。

気づかないうちに値が変わる。
同じ名前の変数が知らない場所で作られている。

「自由すぎる」ことが問題だったのです。

現在の開発では、var は基本的に使われません。
その代わりに、letconst を使うのが今のスタンダードです。


let – 値を変更できる変数 –

var が自由すぎてバグを生みやすかったことを受けて、登場したのが let です。

let count = 0;
count = 1; // これはOK

let で宣言した変数は、あとから値を変更できます。
カウントアップのように、値が変わることが前提の処理で活躍します。


一方で、同じ名前でもう一度作ろうとすると…

let count = 0;

let count = 100; // ❌ 同じ変数名を宣言できないのでエラー

この場合はエラーになります。

Identifier ‘count’ has already been declared

「その名前はすでに使われています」と、
JavaScriptがきちんと止めてくれるのです。


let は、

・再宣言はできない
・上書きはできる

というルールを持った、
“変更はできるけれど、安全になった変数” です。


const – 値を変更しない変数 –

現在のJavaScript開発では、まず const を使うのが基本です。

const price = 100;

const で宣言した変数は、あとから値を変更することができません。

const price = 100;

price = 200; // ❌ 上書きできないためエラー

この場合はエラーになります。

Assignment to constant variable.

「この値は変更できません」と、
JavaScriptがきちんと止めてくれるのです。


const は、

・再宣言できない
・上書きできない

というルールを持っています。

一度決めた値が変わらないことで、
コードは読みやすくなり、予期せぬバグも防ぎやすくなります。


つまり、
値をあとから変更しない変数には const を使い、
本当に値を変更する必要が出てきたときだけ、let を使う
これが基本の考え方です!


constでも変更できるケース

ここは少しだけ注意が必要です。

const user = { name: "Tanaka" };

user.name = "Sato"; // これはOK

「あれ?変えられてる?」と思いますよね。


const が守っているのは、
「箱(変数)そのもの」なのです。


なので、

user = { name: "Suzuki" }; // ❌ 箱そのものは入れ替えられない

このように、箱を丸ごと入れ替えることはできません。


でも、箱の中身を整理することはできます。

・箱の交換 → NG
・箱の中の変更 → OK

この違いを覚えておきましょう!


変数には「使える範囲」がある

もうひとつ大切なのが「スコープ」です。

スコープとは、
その変数が使える範囲のこと。


JavaScriptでは、
{ }(波かっこ)で囲まれた中でletconst で宣言した変数は、その関数の中でしか使えません。

const greet = () => {
const message = "こんにちは";
console.log(message);
};

console.log(message); // ❌ { }の外で使用できないためエラー

message は関数の中で宣言されています。
そのため、波かっこの外では使うことができません。


このように、

・波かっこの中で宣言した変数は、その中だけで使える
・波かっこの外では使えない

というルールがあります。

これが「スコープ」です。


まとめ

変数の役割と違い、整理できたでしょうか?

\\ 今回のまとめ //

・ 変数は「データを入れる箱」。
var は自由すぎるため、現在は基本的に使わない。
let は「変更できる変数」。
const は「変更しない変数」。まずはこれを使う。
・ 変数には「使える範囲(スコープ)」がある。


難しいテクニックは出てきていません。

でも、この土台があるからこそ、
これから学ぶ配列・オブジェクト・Reactの理解がスムーズになります。

次は、箱の中にどんな種類のデータを入れられるのか、
「JavaScriptのデータ型」を見ていきましょう!


コメント

タイトルとURLをコピーしました