[JavaScript] 超入門:letとconstの違いと使い分けをやさしく解説
「JavaScriptの let と const、どう違うの?」
変数や定数はプログラミングの基本ですが、JavaScriptでは独自のルールがあり、少し戸惑うこともあります。
この記事では、初心者の方に向けて、let
とconst
の「何がどう違うのか?」そして「どう使い分ければいいのか?」をやさしく解説します。
「とりあえず を使っているけれど、これでいいのかな?」と悩んでいる方も、この記事を読み終えるころには、それぞれの使い方に自信が持てるようになります!
はじめに
この記事では、前回の「JavaScriptにおける変数と定数とは?」で紹介した基本をふまえ、let
とconst
の使い分けにフォーカスして解説します。
また、昔からある var
という書き方もありますが、現在はあまり使われておらず、代わりに let
や const
が主流です。この記事ではその点にも軽く触れます。
JavaScriptの宣言方法:let / const の違い
JavaScriptで変数や定数を宣言するには、現在は主に以下の2つを使います。
- let:再代入できる変数(値が変わるものに使う)
- const:再代入できない定数(値が変わらないものに使う)
過去には var
という方法も使われていましたが、思わぬバグにつながることがあるため、現在は基本的に使いません。
let と const の使い方をコードで確認
let の例:
1 2 |
let score = 80; score = 90; // OK:再代入できる |
const の例:
1 2 |
const pi = 3.14; pi = 3.15; // エラー:再代入できない |
const
は再代入できませんが、オブジェクトや配列の中身の変更は可能です。
1 2 |
const fruits = ['apple', 'banana']; fruits.push('orange'); // OK:配列の中身を変更 |
スコープ(見える範囲)の違いにも注意
let
とconst
は「ブロックスコープ」で動作します。
1 2 3 4 |
if (true) { let greeting = "こんにちは"; } console.log(greeting); // → エラー:スコープ外 |
1 2 3 4 5 6 |
let x = 10; { let x = 20; console.log(x); // → 20(ブロック内の x) } console.log(x); // → 10(外の x) |
このように、if
や for
の中で定義した変数は、その中でしか使えず、外からはアクセスできません。これが、コードの安全性を高めます。
「スコープ」とは、変数がどこから見えるか(アクセスできるか)の範囲のことです。
var はなぜ避けられるのか?
var
は JavaScript 初期から存在する宣言方法ですが、以下のような理由から現在は推奨されていません。
- 関数スコープ:ifやforなどの中でも外から見えてしまう
- 巻き上げ(hoisting):宣言がコードの先頭に移動してしまうように見える
1 2 3 4 |
if (true) { var message = "こんにちは"; } console.log(message); // → "こんにちは"(見えてしまう) |
このような振る舞いはバグの原因になりやすいため、現在は let
と const
を使うのが一般的です。
どれを使えばいい?使い分けのポイント
以下のルールが基本です。
- まず const を使う(変更のない値に)
- 変更が必要な場合だけ let を使う
- var は原則使わない(互換性や古いコードで見かける程度)
これは多くのプロジェクトや現場で採用されている、実践的なスタイルです。
まとめ:let と const を正しく使って、安全でわかりやすいコードに
JavaScriptでは、let
と const
の使い分けを意識することで、バグを防ぎやすくなり、読みやすいコードになります。
まずは 「const を基本に、必要なら let」 のシンプルなルールを覚えておけばOKです。
最初は let
を使いがちですが、まずは const
を使う習慣をつけると、コードの意図がより明確になり、バグも防ぎやすくなります。
次回は if 文や for 文といった、条件分岐や繰り返し処理について解説していきます。