【JavaScriptの】constとletをどのように使い分ける?varとの違いも解説!

当サイトでは一部リンクに広告が含まれています
アイキャッチ

JavaScriptを書く上で避けては通れないのが変数宣言。その中でもよく使われるのがconstです。

  • constってどんな時に使うの?
  • letやvarとはどう違うの?
  • 初心者にはちょっとわかりづらいですよね。

こんな疑問にお答えし、この記事ではJavaScriptのconstについて、基礎からしっかり解説していきます。

constを使いこなせるようになれば、効率的で安全なコードが書けるようになります。

早速見ていきましょう!

この記事を書いた人
筆者のプロフィールアイコン
  • 未経験からWebエンジニアとして転職成功(年収 30% アップ)
  • 現役のフルスタックエンジニアとして活躍中
  • 開発チームリーダーとして複数プロジェクトをリード
  • 副業プログラミングスクール講師として数百名以上を指導してきた教育のプロ
目次

constって何?「定数」って意味

constは「constant」の略語で、日本語では「定数、不変」という意味の単語です。

プログラミングの文脈で使う場合、constは「再代入も再宣言もできない変数」を宣言するためのキーワードです。

constの使い方

constを使った変数宣言の基本的な構文は以下の通りです。

const 変数名 = 初期値;

変数名は自由に付けられますが、分かりやすい名前を付けるのがおすすめです。
初期値はconst宣言時に必ず設定する必要があります。

具体的な記述例を見てみましょう。

const TAX_RATE = 0.1;
console.log(TAX_RATE); // 0.1

このように書くことで、TAX_RATEという変数に0.1という値を代入しています。
定数の場合は、「再代入されない」「上書きされない」ことを明示するために、すべて大文字で書くのが一般的です。

constを使うメリット

constを使うメリットは主に2つあります。

  • 変数の値が変更されないので、コードの見通しが良くなる
  • 意図しない変数の上書きを防げるので、バグを減らせる

変更される可能性のない変数は、できるだけconstを使って宣言するのがベストプラクティスとされています。

letやvarとの違い

JavaScriptには変数宣言のキーワードとして、ほかにletvarがあります。
これらの違いを表にまとめてみました。

const let var
再宣言 不可 不可
再代入 不可
スコープブロックブロック関数
再宣言/再代入の可否、スコープ範囲の比較

constは再宣言も再代入もできない、つまり「絶対に変更されない」ことが保証された変数と言えます。

letは「再代入はできるが再宣言はできない」変数です。
途中で値を変更する可能性がある場合に使います。

一方varは、再宣言も再代入も可能です。
また、varのスコープは関数スコープなので、意図しないところから値を変更されてしまう可能性があるため、最近はあまり使われません。

constを使うべきシーン

どのようなシーンでconstを使うべきでしょうか。

  • プログラムの途中で変更されない定数(円周率、税率など)
  • 外部から受け取った設定値
  • 変更の必要がない変数

こういった用途には、迷わずconstを使いましょう。

constの注意点

constにも注意点があります。

  • 必ず初期値を設定する
  • オブジェクトや配列の中身は変更可能
  • 巻き上げ(ホイスティング)は起きない

オブジェクトや配列は要注意!

特に、オブジェクトや配列をconstで宣言した場合の挙動には気をつけましょう。

const obj = {a: 1, b: 2};
obj.a = 3;
console.log(obj.a); // 3

const arr = [1, 2, 3];
arr[0] = 10;
console.log(arr); // [10, 2, 3]

このように、オブジェクトや配列をconstで宣言しても、その中身は変更可能です。
constで宣言したからといって完全に変更不可能というわけではないので、ミスによる値の変更に注意が必要です。

まとめ

今回は、JavaScriptのconstについて詳しく解説しました。

constは強力な変数宣言方法ですが、letやvarとの違いや注意点もしっかり押さえておく必要があります。
用途に合わせて適切な宣言方法を使い分けることが、バグの少ない安全なコードを書くコツです。

是非この記事を参考に、constを使いこなしてくださいね!

JavaScript を効率よく勉強するなら

この記事を読んでいる方は JavaScript の勉強を頑張っていることと思います!

しかし、JavaScript は学習範囲が広く、知識不足で苦労している方もいるかもしれませんね。

そんなときは本やプログラミングスクールを活用し、体系的な学習を検討してみてはいかがでしょうか?

目次