1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「【初心者向け】JavaScriptの変数宣言(const / let / var)の違いまとめ」

Last updated at Posted at 2025-04-21

はじめに

初心者の勉強用の備忘録として、
JavaScriptの変数宣言 constletvar の違いについてまとめました

結論

  • 基本は const を使う
  • 再代入が必要なときだけ let
  • var は使わない

詳細

用語

用語 意味
宣言 新しく変数を作ること。例:let x = 1;
代入 宣言で作成した変数(箱)に値を入れること例:let x = 1;x = 2;
再代入 一度宣言した変数を更新すること。例:x = 3;(初回の代入後に行う)
再定義 同じ名前の変数を、再び letconst で宣言し直すこと。例:let x = 1; let x = 2;(←これはエラーとなる)

const

  • 再代入できない
  • 再定義もできない
  • 値を固定したいときに使う
  • ブロックスコープ
    ブロック({})内で定義した変数はブロックスコープ内でのみ参照可能。
    ⇒関数スコープ同様にスコープの外側から参照すると例外が発生する。

【再代入】

const test = "代入1回目";
test = "代入2回目"; //エラーになる

【関数スコープ】

function test() {
  if (true) {
    const x = 1;
  }

  console.log(x); // エラー:x is not defined
}

test();

let

  • 再代入は可能
  • 再定義は不可
  • 初期値なしで宣言できる
  • constと同じくブロックスコープ

【再代入】

let test = "代入1回目";
test = "代入2回目"; //実行可能
function test() {
  if (true) {
    let x = 1;
  }

  console.log(x); // エラー:x is not defined
}
test();

>初期値なしで宣言できる

let x; // 初期値なし
x = 1; // 後で代入

var

  • 再代入可能
  • 再定義可能
  • 関数スコープ(関数内で有効、ブロックスコープなし)
  • 現代のJavaScriptでは基本的に非推奨
    ⇒const や let が導入される以前は var しかなく、
    そのため古いコードでは使用されているが、新しいコードでは非推奨

【再代入】

var test = "宣言1回目";
test = "宣言2回目";//実行可能

【関数スコープ】

function test() {
  if (true) {
    var x = 1;
  }

  console.log(x); // 1(関数スコープなのでここでも見える)
}

test();

参考文献

https://qiita.com/andota05/items/1233b147f4f96bd53646
https://magazine.techacademy.jp/magazine/14872
https://www.youtube.com/watch?v=4NPrR_szrUM&t=345s
https://typescriptbook.jp/reference/values-types-variables/let-and-const
https://tech-dream.school/archives/467
https://qiita.com/takuo_maeda/items/90d5152cc31e26d9d17b

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?