変数って言葉はよく聞くんですけど、実際どういうものなのかよくわからないんですよね。どう理解すればいいんでしょうか?
変数は「データに名前をつける仕組み」ですね。これを理解するだけで、コードの読み書きがぐっと楽になりますよ。
この記事では、プログラミングの変数について、基礎から実践的な使い方まで解説します。

本記事の専門性
現役エンジニアのZettoです。Java SilverおよびJava Goldの資格を持ち、JavaとTypeScriptを使ったフリーランス案件を複数経験しています。
この記事を読めば、変数の宣言・代入・参照・データ型・スコープまで、プログラミングの変数に関する知識が一通りわかります。
ぜひ参考にしてみてください。
プログラミングの変数の基礎知識

変数を理解するには、まず「なぜ変数が必要なのか」から押さえるのが近道です。
- 変数とは「データに名前をつける仕組み」
- 変数がないとコードはどうなるか
それぞれ詳しく解説します。
変数とは「データに名前をつける仕組み」
変数とは、データに名前をつけて保存しておく仕組みのことです。

コンピューターはデータをメモリ(記憶領域)に保存して処理します。変数はそのメモリ上の場所に「わかりやすい名前」をつけたものだと思うと、イメージしやすいかなと。
たとえば、「25」という数字だけあっても、それが何の数字なのかわかりません。でも「age(年齢)= 25」と名前をつけると、「あ、これは年齢のデータだな」とすぐにわかりますよね。
// 「age」という名前の箱に「25」を入れる
let age = 25;
// 「name」という名前の箱に「Zetto」を入れる
let name = "Zetto";箱に名前のラベルを貼っておくイメージです。「age(年齢)」という名前のついた箱に「25」という値を入れておけば、あとから「age」と呼ぶだけで「25」が取り出せます。それが変数の基本的な役割です。
変数がないとコードはどうなるか
実際に変数を使わないとどうなるか、考えてみましょう。
たとえば消費税込みの価格を計算するプログラムを書く場合、変数なしだとこうなります。
// 変数なし
console.log(1000 * 1.1);
console.log(2000 * 1.1);
console.log(3000 * 1.1);一見シンプルに見えますが、税率が10%から8%に変わったとき、「1.1」を全部探して書き換えなければなりません。3行ならまだいいですが、100行あったら大変ですよね。
変数を使うとこうなります。
// 変数あり
let taxRate = 1.1;
console.log(1000 * taxRate);
console.log(2000 * taxRate);
console.log(3000 * taxRate);税率を変えたいときは taxRate の値を1箇所直すだけで済みます。変数を使うと、コードの修正が楽になるだけでなく、「この数字が何を意味しているか」が一目でわかるようになるんですよね。
プログラミングの入門段階から変数を正しく使えるかどうかが、後々のコードの質に大きく影響します。
変数なしのコードは読みにくく、直しにくい。変数はコードを「人間にやさしく」するための仕組みです。
変数を使うことで、コードの修正が格段に楽になりますね。これが変数を最初に学ぶ理由の1つです。
変数の基本的な使い方

変数の概念がわかったところで、実際の使い方を順番に見ていきましょう。
- 変数の宣言|変数を作る方法
- 変数への代入|値を入れる・書き換える
- 変数の参照|値を取り出す
- データ型の種類と使い分け
- 変数と定数の違い
ひとつずつ見ていきましょう。
変数の宣言|変数を作る方法
変数を使うには、まず「この名前の変数を使います」と宣言する必要があります。
JavaScriptでは let または const というキーワードを使います。
let age; // 「age」という変数を宣言する
let name; // 「name」という変数を宣言する宣言しただけの状態では、箱は用意したけど中身がまだ入っていない状態です。
実際には宣言と同時に値を入れることがほとんどです。
let age = 25;
let name = "Zetto";この「宣言と同時に値を入れる」書き方が、実務でもよく使われる基本パターンです。
プログラミング言語によって宣言の書き方は変わりますが、「変数を使うには最初に宣言する」という考え方はほぼ共通しています。JavaScriptの書き方を覚えておけば、他の言語を学ぶときの理解もスムーズになりますよ。
変数への代入|値を入れる・書き換える
変数に値を入れることを「代入」と呼びます。
= は「等しい」ではなく「右の値を左に入れる」という意味です。数学の=とは意味が違うので、最初は少し違和感があるかもしれません。
let score = 80; // 最初に80を入れる
score = 95; // 後から95に書き換える
console.log(score); // 95が表示される一度代入した値は、あとから書き換えられます。これが「変数(変わる数)」と呼ばれる理由ですね。
代入の応用として、今の値をもとに新しい値を計算する書き方もよく使われます。
let count = 0;
count = count + 1; // 0 + 1 = 1
count = count + 1; // 1 + 1 = 2
console.log(count); // 2が表示されるこの「自分自身に足す」書き方は、ゲームのスコアカウントやループ処理でよく使われるパターンです。
変数の参照|値を取り出す
宣言・代入した変数は、名前を書くだけで値が取り出せます。これを「参照」と言います。
let price = 1000;
let taxRate = 1.1;
let totalPrice = price * taxRate;
console.log(totalPrice); // 1100が表示される変数名を書くと、その場でメモリから値が読み出されて使われます。変数を一度定義しておけば、何度でも使い回せるのがポイントです。
計算式の中でも使えますし、別の変数に入れることもできます。「名前を書けば値が出てくる」という感覚で使ってみてください。
データ型の種類と使い分け
変数には入れられる「データの種類」があります。これを「データ型」と呼びます。
JavaScriptで基本的に知っておきたいデータ型は次の通りです。
- 数値(number):
let age = 25;(整数・小数どちらもOK) - 文字列(string):
let name = "Zetto";(文字はクォートで囲む) - 真偽値(boolean):
let isLoggedIn = true;(trueかfalseの2択) - null:
let data = null;(意図的に「空」を表す) - undefined:値がまだ入っていない状態を表す
データ型によって、できる操作が違います。数値なら計算できますが、文字列同士を「足す」と文字がくっつく動作になります。
let num1 = 10;
let num2 = 5;
console.log(num1 + num2); // 15(数値の計算)
let word1 = "Hello";
let word2 = "World";
console.log(word1 + word2); // "HelloWorld"(文字の連結)型を意識せずに書くとエラーや予期しない動作の原因になります。「この変数に何のデータを入れているか」を常に意識する癖をつけると、バグが減りますよ。
データ型は「変数の中身の種類」。数値・文字列・真偽値の3つを最初に押さえれば、ほとんどの場面は対応できます。
変数と定数の違い
変数と似た概念に「定数」があります。
定数は一度値を入れたら書き換えられない変数です。JavaScriptでは const を使って宣言します。
const PI = 3.14159; // 円周率(変わらない値)
PI = 3; // エラー!定数は書き換えできない
let score = 80; // letなら後から書き換えOK
score = 95; // 問題なく動く使い分けの基準は次の通りです。
const:変わらない値に使う(税率・固定の設定値・ID など)let:後から変わる可能性がある値に使う(スコア・カウント・ユーザー入力など)
迷ったら const を使うのがおすすめです。書き換えが必要になったタイミングで let に変えれば良い。「変えていい変数」を必要最小限にすると、バグが起きにくいコードになります。
変数を正しく使うための実践知識

変数の書き方を覚えたら、次は「正しく・わかりやすく使う」ための知識が必要になります。
- スコープの基本|変数が使える範囲
- 現場で通用する変数名の付け方
- 初心者がはまりやすいエラーと対処法
- 変数を理解した後に学ぶこと
詳しく掘り下げていきます。
スコープの基本|変数が使える範囲
スコープとは、変数が「どこから使えるか」を決めるルールのことです。
変数はどこに書いても使えるわけではなく、宣言した場所によって使える範囲が決まります。これを知らないと、「変数を作ったはずなのに使えない」というエラーで詰まるんですよね。
JavaScriptのスコープには大きく2種類あります。
グローバルスコープ
関数の外で宣言した変数は、コード全体から使えます。
let userName = "Zetto"; // どこからでも使える
function greet() {
console.log("こんにちは、" + userName); // 関数の中でも使える
}
greet(); // 「こんにちは、Zetto」と表示ローカルスコープ
関数の中で宣言した変数は、その関数の中だけで使えます。
function calcTax() {
let taxRate = 0.1; // この関数の中だけで使える
return 1000 * taxRate;
}
console.log(taxRate); // エラー!関数の外からは使えないスコープのポイントをまとめると次の通りです。
- グローバル変数はどこからでも使える一方、意図しない書き換えが起きやすい
- ローカル変数は関数の外に影響しないため、安全で管理しやすい
- 変数はなるべく「必要な範囲だけ」で宣言するのが実務でのベストプラクティス
プログラムが大きくなるほど、スコープを正しく理解していないと原因不明のバグが増えていきます。「変数はなるべく小さいスコープで」と覚えておくだけで、コードが格段に読みやすくなります。
現場で通用する変数名の付け方
変数名の付け方ひとつで、コードの読みやすさが大きく変わります。
実際の現場では、自分が書いたコードを他のエンジニアが読みます。意味のわからない変数名は「なんのための値なのか」を調べる手間が増え、バグの原因にもなりやすいです。
良い変数名・悪い変数名の例を見てみましょう。
// 悪い例
let a = 25;
let x = "Zetto";
let flag = true;// 良い例
let userAge = 25;
let userName = "Zetto";
let isLoggedIn = true;現場で使われる変数名のルールはいくつかあります。
- キャメルケースで書く:単語をつなげるとき最初の文字を大文字にする(例:
userName、totalPrice) - 何のデータかわかる名前にする:
aやxではなくuserAgeやitemPrice - 真偽値には
isやhasをつける:isLoggedIn、hasPermission - 省略しすぎない:
usrよりuser、cntよりcount
僕も最初は「短い変数名の方がタイピングが楽でいい」と思っていました。でも実務でコードレビューを受けるたびに、変数名を直す指摘を受けていたんですよね。
意味のある名前をつける習慣は、早いうちに身につけておいて損はないです。
初心者がはまりやすいエラーと対処法
変数まわりで初心者がよく詰まるエラーを3つ紹介します。実際に僕も最初の頃にひとつひとつ経験しました。
① 変数が宣言されていないエラー(ReferenceError)
console.log(score); // ReferenceError: score is not defined
let score = 80;JavaScriptの let と const は、宣言より前に使おうとするとエラーになります。変数は「使う前に宣言する」のが鉄則です。
② 定数を書き換えようとするエラー(TypeError)
const MAX_COUNT = 10;
MAX_COUNT = 20; // TypeError: Assignment to constant variable.const で宣言した変数は書き換えられません。後から変更する可能性があるなら let を使いましょう。
③ データ型の混同によるバグ
let price = "1000"; // 文字列として入れてしまった
let tax = 0.1;
console.log(price * tax); // 100(たまたま動くが危険)
console.log(price + tax); // "10000.1"(文字列として連結される)数字のつもりでも、クォートで囲むと文字列になります。エラーにならず動いてしまうことがあるので、気づきにくいバグの原因になりやすいです。
エラーが出たときは、まずエラーメッセージをしっかり読みましょう。「どの行で」「何が原因で」エラーが出ているかが書いてあります。エラーメッセージは敵ではなく、「ここがおかしいよ」と教えてくれる道案内ですね。
変数を理解した後に学ぶこと
変数を理解したら、次は何を学べばいいか迷いますよね。
プログラミングの学習には順番があります。変数の次に押さえておきたい知識は次の通りです。
- 条件分岐(if文):条件によって処理を変える
- 繰り返し処理(for文・while文):同じ処理を何度も実行する
- 配列:複数のデータをまとめて管理する
- 関数:処理をひとまとめにして使い回す
変数・条件分岐・繰り返し・配列・関数、この5つがプログラミングの基本構成要素です。これを押さえれば、簡単なプログラムは一通り作れるようになります。
配列は「変数をまとめたもの」と考えるとわかりやすいです。配列については以下の記事でわかりやすくまとめています。変数の次のステップとして読んでみてください。

また、繰り返し処理(ループ処理)についても基礎から解説した記事があります。変数と組み合わせてよく使うので、あわせて確認しておくと理解が深まりますよ。

基礎を固めたあとは、実際にコードを書くプロジェクトに挑戦することが上達の近道です。エンジニアとしての学習ロードマップが気になる方は、以下の記事も参考にしてみてください。

変数・配列・ループ・関数が揃ったら、簡単なWebアプリを作ってみるのがおすすめです。手を動かすことで「なんとなくわかる」から「使いこなせる」に変わっていきますよ。
変数から配列・関数へと段階的に学習を進めることで、確実にスキルが身についていきます。焦らず一歩ずつですね。
変数に関するよくある質問

よくある質問と回答をまとめました。
- 変数と配列の違いは何ですか?
- プログラミング言語によって変数の書き方は変わりますか?
- AIにコードを書いてもらえば変数を理解しなくてもいいですか?
変数と配列の違いは何ですか?
変数は「1つのデータ」を保存するもので、配列は「複数のデータをまとめて」保存するものです。
// 変数:1人分のデータ
let user1 = "Zetto";
let user2 = "Mirai";
let user3 = "Taro";
// 配列:複数人のデータをひとまとめに
let users = ["Zetto", "Mirai", "Taro"];ユーザーが3人なら変数3つでも書けます。でも100人になったら100個の変数が必要になってしまいますよね。配列を使えば1つの変数で何百人分でも管理できます。「同じ種類のデータが複数ある」ときは配列を使うと考えるとわかりやすいかなと。
変数は「1つの箱」、配列は「たくさんの仕切りがある箱」のイメージですね。
プログラミング言語によって変数の書き方は変わりますか?
書き方は言語によって変わりますが、「変数はデータに名前をつける仕組み」という考え方はどの言語でも共通です。
JavaScriptとJavaを比べてみましょう。
// JavaScript
let age = 25;
let name = "Zetto";// Java
int age = 25;
String name = "Zetto";JavaScriptは型を書かなくて済みますが、Javaは「int(整数)」「String(文字列)」のようにデータの型を明示する必要があります。
言語ごとの書き方の違いはあっても、「宣言して・代入して・参照する」という基本の流れは変わりません。1つの言語で変数をしっかり理解しておけば、他の言語に移ったときも比較的スムーズに対応できますよ。
AIにコードを書いてもらえば変数を理解しなくてもいいですか?
AIはコードを書いてくれますが、変数の理解を飛ばすのはおすすめしません。
ChatGPTやGitHub CopilotなどのAIツールは2026年現在、プログラミング学習の強力な相棒になっています。コードの生成・エラーの調査・リファクタリングなど、様々な場面で活用できます。
ただし、変数などの基礎を理解していないと、AIが生成したコードを読んで意味を理解できません。意味がわからなければ、エラーが出たときに直せないし、改修もできません。
AIが「便利な道具」として機能するのは、自分に基礎知識があるときです。理由は3つあります。
- 何が間違っているかを判断するには基礎知識が必要
- AIの出力が正しいかどうかを見極められない
- 転職の面接でコードを問われたとき答えられない
「まず基礎を理解する → そのうえでAIを加速ツールとして使う」この順番が、学習効率も実力も両立できる進め方です。AIをうまく使いこなすためにも、変数の基礎はしっかり押さえておくことをおすすめします。
変数の理解がプログラミング学習の土台になる

この記事では、プログラミングの変数についてわかりやすく解説しました。
重要なポイントをまとめます。
- 変数はデータに名前をつけて保存する仕組み
- 宣言・代入・参照の3ステップで使う
- データ型によって入れられる値の種類が変わる
constとletを正しく使い分ける- スコープ(使える範囲)を意識すると、バグが格段に減る
- 変数名はわかりやすさを最優先に付ける
変数は、条件分岐・繰り返し・配列・関数、あらゆるプログラミングの概念と絡み合います。ここをしっかり理解しておくと、次のステップに進んだときの理解速度が変わってきますよ。
変数の理解を足がかりに、ひとつひとつ着実に積み上げていきましょう。
なるほど、変数って「名前のついたデータの箱」なんですね。スコープのあたりがまだちょっと難しいですが、もう少し手を動かして練習してみます!
その理解で完璧ですよ。スコープは最初は難しく感じますが、コードを書き続けると自然と身につきます。焦らず一歩ずつ進めていきましょう。
プログラミング学習全体の進め方がまだイメージできていない方は、以下の記事も参考にしてみてください。学習の始め方から必要なスキルの全体像まで解説しています。
