Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

変数へんすう

JavaScriptの基礎:データの入れ物「変数へんすう」をマスターしよう

JavaScriptを学ぶ上で、最初の重要なステップが「変数へんすう」の理解です。

留学生の皆さんが日本語を学ぶとき、単語を覚えて整理するように、プログラミングでもデータを整理して名前をつける作業が必要です。変数へんすうを使いこなせるようになると、プログラムの中でデータを自由に再利用(さいりよう)し、複雑な処理をてることができるようになります。

では、まず、「変数へんすうとは何か」から、はじめましょう。


I. 変数へんすうとは何か:データを保存する「名前付きの箱」

プログラミングにおける「変数へんすう」とは、プログラムの中で扱う数値すうちや文字列などのデータを保存しておくための「名前のついた箱」のようなものです。

空港で荷物を預けるシーンを想像してみてください。たくさんのスーツケースがあるとき、『どれが誰のものか?』『中身が何か?』を見分みわけるために「名前のラベル」を貼りますよね。これが変数へんすうです。ラベル(変数へんすう名)があるからこそ、あとで必要なときに迷わずそのデータを取り出すことができます。

1.「代入だいにゅう

「名前のついた箱」である 変数へんすう」の中にデータを入れる ことを、プログラミングでは 代入だいにゅう と言います。

  • 名前(ラベル): 変数へんすう名(れい: score, myName
  • 箱の中身: データ(れい: 数字の 100, 文字の "山田"

代入だいにゅうするときは、=(イコール) という記号を使います。ここで一番大切なルールがあります。

「右側(みぎがわ)にあるデータを、左側(ひだりがわ)の変数へんすうに入れる」,

数学(すうがく)の = は「左と右が同じ」という意味ですが、プログラミングの =「入れる」 といううごきを表します。

たとえば、テストの点数をscoreという変数へんすうに保存したいときは次のように書きます。

score = 100;
  • これは、「100」という数字を、「score」という名前の箱に入れた という意味になります。

また、「再代入だいにゅう(さいだいにゅう)」 とは、「一度、変数へんすうに値を代入だいにゅうしたあとで、別の値を入れなおす」ことです。

一度、100という点数を入れたscoreを、あとで80点に変更する場合、下のように書きます。

score = 100; // 最初に100を代入(だいにゅう)します
// プログラムの途中は省略します
score = 80; // 一度、100を入れた変数(へんすう)scoreに、80を再代入(さいだいにゅう)します

2. 変数へんすう宣言せんげんとキーワードの種類

変数へんすうを利用するには、まずシステムにその変数へんすう名を使うことを知らせる「変数へんすう宣言せんげん」が必要です。現代のJavaScriptでは、主に constlet という2つのキーワードを使用して宣言せんげんを行います。

なぜ変数へんすう宣言せんげんするキーワードが2つあるのでしょうか? 実は、JavaScriptには2種類の箱があります。プログラムを効率こうりつ的に、そしてミスなく作るためには、これらを使つかけることが重要です。

キーワードは、プログラムが動いている途中で「値を変更するかどうか」で使つかけます。

let宣言せんげんした変数へんすうは、あとで値を変えることができます。つまり 「再代入だいにゅうが可能」 です。反対に、const宣言せんげんした変数へんすうは、あとで値を変えることができません。

種類特徴使いどきれい
let中身をかえられる箱ゲームのスコアやクリックされた回数など、あとで値が変わるものconst MAX_LEVEL = 99;
const一度入れたら変えられない箱名前、誕生日、設定せってい値など、ずっと同じものlet score = 0; (あとで score = 10; と変えられる)

💡 プロの視点してん:なぜ const優先ゆうせんするのか?

const宣言せんげんされた変数へんすうは、後から値を変更できません。一度決めた値が「変わらない」ことが約束されいてると、後からコードをかえしたときに迷わず、バグ(ミス)を減らすことができるからです。

ですから、みなさんは、できるだけ const を使いましょう。そして、後から値を変更しなければならないときだけ let を使いましょう

※ むかしは letの代わりに var が使われていましたが、知らないうちに変数へんすうの中身が書きかえられてしまうかもしれないので、現在は、「使わないのがよい」とされています。

3. 変数へんすう初期化しょきか

変数へんすう宣言せんげんする際、同時に値を代入だいにゅうすることを「初期化しょきか(しょきか)」と呼びます。

  • 宣言せんげん初期化しょきかを同時に行うれい:
    let myDog = "Rover"; // 宣言(せんげん)と同時に "Rover" という文字列を入れる
    const pi = 3.14;     // constは宣言(せんげん)時に必ず初期化(しょきか)が必要
    
  • 宣言せんげんだけ先に行う例(letのみ可能):
    let myName; // 箱だけ用意する。この時の中身は undefined(未定義(みていぎ))となる
    myName = "Chris"; // 後から値を代入(だいにゅう)する
    

4. 変数へんすうの名前の付け方

変数へんすうに名前を付けるときには、いくつかの守るべきルールと慣習かんしゅうがあります。

  • 大文字と小文字は区別される: Namename は別の変数へんすうとして扱われます。
  • 使用できる文字: 半角はんかく英数字えいすうじ、アンダースコア(_)、ドル記号($)が使えますが、数字から始めることはできません
  • キャメルケース (camelCase): 複数の単語をつなげる場合、2つ目以降の単語の先頭を大文字にするかたが一般的です。
    • れい: finalOutputValueuserName
  • 意味のある名前: ab といった一文字ではなく、countisRaining など、中身が何であるか伝わる英語の名前を付けるのがよい、とされています。

⚠️ 留学生への重要アドバイス:半角はんかく全角ぜんかく

JavaScriptのコードを書く際、最も多いエラーの原因は全角ぜんかく文字の使用です。変数へんすうの名前にも、全角ぜんかく文字は使えません。 すべて半角はんかく文字にしてください。

箱の使い方がわかったところで、次は、その箱に入れる「データの種類」について詳しく見ていきましょう。

以下のようなものがあります。

  • 文字列型: let name = "山田"; (シングル ' ' または ダブル " "引用符いんようふで囲む)
  • 数値すうち: let age = 17;引用符いんようふは付けない)
  • 論理ろんり: let iAmAlive = true;true または false真偽しんぎ値)
  • 配列はいれつ: let myNameArray = ["Chris", "Bob", "Jim"]; (複数の値をまとめて管理するリスト)
  • オブジェクト: let dog = { name: "ポチ", breed: "ダルメシアン" }; (関連するデータと機能をひとつにまとめたもの)

ここでは「文字列型」「数値すうち型」「論理ろんり型」について説明します。「配列はいれつ」と「オブジェクト」については、あとの章で説明します。


II. 文字列型 (String):テキストデータを扱う

ウェブページで「こんにちは」というメッセージを表示ひょうじしたり、ユーザーの名前を扱ったりする際に使われるのが「文字列(もじれつ)」です。

1. 文字列を作る

文字列を作るには、テキストを 引用符いんようふ(クォーテーション) で囲みます。

  • シングルクォーテーション: ‘こんにちは’
  • ダブルクォーテーション: “こんにちは”

どちらを使っても構いませんが、ひとつのプログラムの中で統一するのが良い習慣です。

2. テンプレートリテラル:最新さいしんのスマートなかた

バッククォート( ` )と ${ } を使った「テンプレートリテラル」を使うと、変数へんすうみや改行かいぎょうが非常に簡単になります。

const name = "佐藤";
// 変数(へんすう)を文章の中に埋(う)め込(こ)む
const greeting = `こんにちは、${name}さん!`; 
console.log(greeting);

実際、どんなふうになるか見てみましょう。F12 キー(ノートPCは Fn + F12)を使ってコンソールを開いてから、下の 「実行」 ボタンを押してみてください。

// テンプレートリテラルなら、そのまま改行(かいぎょう)もできます
const multiLine = `一行目です
二行目です
三行目です`;
console.log(multiLine);

下の 「実行」 ボタンを押すと、上のコードの実行結果がコンソールに表示ひょうじされます。

文字の次は、計算に欠かせない「数値すうち」の扱いに進みます。


III. 数値すうち型 (Number) と特別な値 (NaN / Infinity)

JavaScriptでは、整数(100)も小数(3.14)も、すべて同じ「数値すうち」型として扱います。

1. 算術さんじゅつ演算えんざん子(計算の記号)

数値すうちを使って、算数と同じように計算ができます。

  • +ざん-ざん*ざん/ざん%(余り)

算術さんじゅつ演算えんざん子については、あとで、もっと詳(くわ)しく説明します。

2. 特別な数値すうち:NaNとInfinity

数値すうち型には、注意が必要な特殊な値があります。

  • NaN (Not a Number) :「数値すうちではない」状態です。たとえば、文字列を無理やり計算しようとした時に発生します。
  • Infinity :無限に大きな数値すうちです。

計算の次は、プログラムが「正しいか間違いか」を判断するためのデータを見てみましょう。


IV. 論理ろんり型 (Boolean):YesかNoかの判断基準

プログラムが「もし〜なら、これをする」という制御せいぎょ(せいぎょ)を行う際、その土台どだいとなるのが「論理ろんり(ろんり)」型です。

1. 2つの値だけ

論理ろんり型には、true(しん/正しい) と false(/間違い) の2つの値しか存在しません。

2. 比較とわせ

比較演算えんざん子を使うと、結果として論理ろんり型の値が得られます。

  • score === 100 (スコアは100と厳密げんみつに等しいか?)
  • age >= 20 (年齢は20以上か?)

また、論理ろんり演算えんざん子を使って複数の条件をわせることもできます。

演算えんざん意味覚えるポイント
&&〜かつ〜 (AND)すべて true のときだけ true
||〜または〜 (OR)どちらかが true であれば true
!〜ではない (NOT)true と false を逆転させる

※ 比較演算えんざん子と論理ろんり演算えんざん子については、次の章で、もっと詳(くわ)しく説明します

論理ろんり型を正しく理解すると、複雑なシステムの判断ロジックを整理して、ユーザーの入力にゅうりょくに対して「正しく反応はんのうする」プログラムを書くことができるようになります。


V. 定義ていぎみていぎ型 (Undefined):値が決まっていない状態

変数へんすうを作ったけれど、中身をまだ何も入れていないとき、JavaScriptはその状態を undefined と表現します。これは「定義ていぎみていぎ(みていぎ)」型という特殊な型になります。「定義ていぎみていぎ」とは「まだ定義ていぎされていない」「まだ、どういうものか決まっていない、わからない」という意味です。

「空の箱」と「存在しない箱」の違い

初心者しょしんしゃの方が間違いやすいのが、以下の違いです。

  • undefined:箱(変数へんすう)はあるけれど、中身がまだ入っていない状態。
  • ReferenceError:そもそも箱(変数へんすう自体じたいが存在していない、または名前を間違えている状態。

💡 デバッグのヒント 実行結果に undefined と表示ひょうじされたら、「データの代入だいにゅうを忘れていないか?」「スペルミスをしていないか?」を疑ってみましょう。これはミスを特定するための重要な手がかりになります。


VI. 型の変換へんかん (Type Conversion)

Webサイトの入力にゅうりょくフォームから受け取るデータは、数字に見えても実際には「文字列」です。これを使って計算するには「型の変換へんかん」が必要です。

1. データの抽出:parseInt()

文字列の中から数字だけを取り出す便利な機能があります。

console.log(parseInt("55kg"));    // 55 (数字の部分だけ取り出す)
console.log(parseInt("12.99ドル")); // 12 (整数部分だけ取り出す)
console.log(parseInt("A123"));    // NaN (先頭が文字だと失敗する)

2. 安全な数値すうち入力にゅうりょくの受け取りフロー

プロの現場では、以下のように段階を踏んでデータを処理します。

  1. 受け取る:prompt() などで文字列として入力にゅうりょくを受け取る。
  2. 変換へんかんする:Number() や parseInt() で数値すうちに変える。
  3. チェックする:isNaN() で、正しく数字になったか確認する。

3. 🔍 学習者の味方:typeof 演算えんざん

「今のこの変数へんすうは、何型なんだろう?」と迷ったときは、typeof を使いましょう。

const value = "123";
console.log(typeof value); // "string" と表示(ひょうじ)される

const numValue = Number(value);
console.log(typeof numValue); // "number" と表示(ひょうじ)される

自分の書いたコードが思ったとおりに動いているか、コンソールで typeof を使って確認するクセをつけましょう。


VII. まとめ:プログラミングの基礎をかためる

変数へんすうと型の知識(ちしき)は、これからの学習の土台どだい(どだい)になります。

💡 最重要ポイント

  • 変数へんすうは「名前のついた箱」: データを記憶きおく(きおく)し、何度でも使うために必要です。
  • 基本は const を使う: 安全のために const を使い、値を変えるときだけ let を使いましょう。
  • 数値すうち変換へんかん(すうちへんかん)を忘れずに: prompt() などで受け取ったデータは Number() や parseInt() で数字に変えてから計算しましょう。

⚠️ 初心者しょしんしゃが間違えやすいポイント

  • 引用符いんようふ(クォーテーション)の忘れ: 文字を書くときは必ず “ “ で囲んでください。囲まないと変数へんすうだと勘違(かんちが)いされてエラーになります。
  • 全角ぜんかく(ぜんかく)文字の使用: プログラムのコード(let, const, ; など)は、必ず半角はんかく(はんかく)の英数字えいすうじで書いてください。全角ぜんかくのスペースがひとつあるだけでも、プログラムは動かなくなります。

これで変数へんすうの基本は完璧かんぺき(かんぺき)です。さあ、次に進みましょう!