変数:let と const
変数は値につける名前です。let score = 10 と書くと、別の値を入れるまで score という語は 10 を表します。
値に名前をつけて何度も使う
ここまでの値は、どれも console.log に直接書きこんで、それきり忘れていました。実際のプログラムは物事を覚えておく必要があります。プレイヤーの得点、かごに入った商品、だれかが入力した名前などです。変数は、値を入れておく名前つきの箱です。一度作れば、その値が必要な場所でいつでも名前を使えます。
let score = 10;
console.log(score); // 10
console.log(score + 5); // 15let score = 10; という行は二つのことをしています。キーワード let が score という新しい変数を宣言し、= 10 がそこに値 10 を入れます。ここでの等号は、数学のような「等しい」という意味ではありません。「右側の値を左側の名前に入れる」という意味です。プログラマーはこれを代入と呼びます。あとで score が引用符なしで出てくると、JavaScript は箱を探して、中の値を使います。
let で値を変える
let で宣言した変数には、あとで新しい値を入れられます。名前、等号、新しい値の順に書きます。変数はもうあるので、今度は let をつけません。
let score = 10;
score = 25;
console.log(score); // 25
score = score + 5;
console.log(score); // 30score = score + 5; という行は数学としてはありえませんが、命令として読めば意味が通ります。JavaScript はまず右側、つまり今の score に 5 を足した値を評価し、30 を得ます。そして 30 を score に入れ直します。古い値は消えます。変数を読み、更新した値をそこに入れ直すこのパターンで、プログラムは数を数え、合計を出し、変わっていくものを追いかけます。
変わらない値には const
キーワード const も変数を宣言しますが、すぐに値を入れなければならず、あとから新しい値を代入することはできません。代入しようとすると、プログラムは TypeError: Assignment to constant variable で止まります。このエラーは役に立ちます。一週間の日数や税率のように変わるはずのない値を const で宣言しておけば、プログラムのほかの場所のまちがいで、その値が気づかないうちに上書きされることはありません。
const daysInWeek = 7;
console.log(daysInWeek * 4); // 28
// daysInWeek = 8; と書くと TypeError で止まる多くのスタイルガイドがすすめるよい習慣は、ふだんは const を使い、値が変わるとわかっているときだけ let に切りかえることです。Web 上のコードでは、古いキーワード var を見かけることもあります。今でも動きますが、規則がゆるく、思いがけないバグの原因になるので、このコースでは let と const だけを使います。
名前の決まり
変数名には文字、数字、アンダースコア _、ドル記号 $ を使えますが、数字で始めることはできず、空白も入れられません。ですから total2 はよくても 2total はだめです。名前は大文字と小文字を区別するので、score と Score は別の変数です。let、const、if、for などいくつかの語は言語が予約しているので、名前には使えません。いくつかの語を組み合わせた名前は、JavaScript のプログラマーはふつうキャメルケースで書きます。最初の語は小文字にし、二つ目からの語は大文字で始めます。totalPrice や daysInWeek のようにです。値の意味がわかる名前を選びましょう。読む人にとって、price は x よりずっと多くのことを伝えます。
宣言だけで空のとき、早く使いすぎたとき
値をつけずに let answer; と書くと、変数はできますが、何かを代入するまでは undefined が入っています。let や const の変数を、宣言より上の行で使うとエラーになります。ReferenceError: Cannot access 'answer' before initialization です。一度も宣言していない名前を使うと ReferenceError: answer is not defined になります。どちらのメッセージも、実際にすることは同じです。つづりを確かめ、宣言が先にあるかを確かめましょう。
let 名前 = 値; はあとで変えられる。const 名前 = 値; は変わらない。
| 変数 | 値を入れておく名前 |
| 宣言する | let か const で変数を作る |
| 代入 | = で値を入れること |
| let | 値を変えられる変数を宣言する |
| const | 再代入できない変数を宣言する |
| キャメルケース | totalPrice:二つ目からの語を大文字で始める |
| undefined | 宣言した変数に値が入る前の中身 |
| 予約語 | let や if のように、名前に使えない語 |
- 何が表示されますか?
let x = 4; x = x + 3; console.log(x); - 何が表示されますか?
let n = 2; n = 10; n = n * 3; console.log(n); - 何が表示されますか?
let city = "Busan"; console.log("city");- Busan
- city
- undefined
- 実行するとどうなりますか?
const max = 5; max = 6;- max が 6 になる
- TypeError: Assignment to constant variable で止まる
- 何も起こらず、max はそのまま 5 になる
- 正しい変数名はどれですか?
2ndPlacesecond placesecondPlace
- 何が表示されますか?
let total; console.log(typeof total); - 何が表示されますか?
let a = 5; let b = a; a = 9; console.log(b); scoreとScoreは同じ変数ですか?- はい
- いいえ
- 一時間の分数を入れるには、どのキーワードを使うべきですか?
constletvar
- 何が表示されますか?
let word = "hi"; word = word + word; console.log(word);
- let 名前 = 値; は、変えられる変数を宣言する。
- const 名前 = 値; は、再代入できない変数を宣言する。
- = は「入れる」という意味で、「等しい」ではない。
- x = x + 1 は x を読み、1 を足し、結果を入れ直す。
- 名前:文字、数字、_ と $。数字で始めない。大文字と小文字を区別。キャメルケース。
このコースの出典 (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
確認日: 2026-10-17