プログラミングの変数をわかりやすく解説|宣言・型・スコープまで

Mirai

変数って言葉はよく聞くんですけど、実際どういうものなのかよくわからないんですよね。どう理解すればいいんでしょうか?

Zetto

変数は「データに名前をつける仕組み」ですね。これを理解するだけで、コードの読み書きがぐっと楽になりますよ。

この記事では、プログラミングの変数について、基礎から実践的な使い方まで解説します。

本記事の専門性
現役エンジニアの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箇所直すだけで済みます。変数を使うと、コードの修正が楽になるだけでなく、「この数字が何を意味しているか」が一目でわかるようになるんですよね。

プログラミングの入門段階から変数を正しく使えるかどうかが、後々のコードの質に大きく影響します。

変数なしのコードは読みにくく、直しにくい。変数はコードを「人間にやさしく」するための仕組みです。

Zetto

変数を使うことで、コードの修正が格段に楽になりますね。これが変数を最初に学ぶ理由の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;

現場で使われる変数名のルールはいくつかあります。

  • キャメルケースで書く:単語をつなげるとき最初の文字を大文字にする(例:userNametotalPrice
  • 何のデータかわかる名前にする:axではなくuserAgeitemPrice
  • 真偽値にはishasをつける:isLoggedInhasPermission
  • 省略しすぎない:usrよりusercntよりcount

僕も最初は「短い変数名の方がタイピングが楽でいい」と思っていました。でも実務でコードレビューを受けるたびに、変数名を直す指摘を受けていたんですよね。

意味のある名前をつける習慣は、早いうちに身につけておいて損はないです。

初心者がはまりやすいエラーと対処法

変数まわりで初心者がよく詰まるエラーを3つ紹介します。実際に僕も最初の頃にひとつひとつ経験しました。

① 変数が宣言されていないエラー(ReferenceError)

console.log(score); // ReferenceError: score is not defined
let score = 80;

JavaScriptの letconst は、宣言より前に使おうとするとエラーになります。変数は「使う前に宣言する」のが鉄則です。

② 定数を書き換えようとするエラー(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アプリを作ってみるのがおすすめです。手を動かすことで「なんとなくわかる」から「使いこなせる」に変わっていきますよ。

Zetto

変数から配列・関数へと段階的に学習を進めることで、確実にスキルが身についていきます。焦らず一歩ずつですね。

変数に関するよくある質問

変数のよくある質問

よくある質問と回答をまとめました。

  • 変数と配列の違いは何ですか?
  • プログラミング言語によって変数の書き方は変わりますか?
  • 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ステップで使う
  • データ型によって入れられる値の種類が変わる
  • constletを正しく使い分ける
  • スコープ(使える範囲)を意識すると、バグが格段に減る
  • 変数名はわかりやすさを最優先に付ける

変数は、条件分岐・繰り返し・配列・関数、あらゆるプログラミングの概念と絡み合います。ここをしっかり理解しておくと、次のステップに進んだときの理解速度が変わってきますよ。

変数の理解を足がかりに、ひとつひとつ着実に積み上げていきましょう。

Mirai

なるほど、変数って「名前のついたデータの箱」なんですね。スコープのあたりがまだちょっと難しいですが、もう少し手を動かして練習してみます!

Zetto

その理解で完璧ですよ。スコープは最初は難しく感じますが、コードを書き続けると自然と身につきます。焦らず一歩ずつ進めていきましょう。

プログラミング学習全体の進め方がまだイメージできていない方は、以下の記事も参考にしてみてください。学習の始め方から必要なスキルの全体像まで解説しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次