ゆめさくエンジニア研究所

let、const、var の違いは何ですか

再代入できるか、どこまで使えるか、宣言の前に触れたらどうなるか、の 3 点で答える JavaScript の定番の問い。

短い答え

  • const は再代入できない変数、let は再代入できる変数で、どちらも波かっこ (ブロック) の中だけで使えます。
  • var は古い書き方で、範囲が関数の単位でしか区切られず、宣言より前に使ってもエラーにならず undefined になります。
  • いまは const を基本にし、値を変える必要があるときだけ let を使い、var は使いません。

深掘りの答え

const でも中身は変えられる

const が禁じるのは「変数に別の物を入れ直すこと」だけです。入っているオブジェクトの中身は変えられます。

JavaScript

const user = { name: "Aya" };
user.name = "Ken";
console.log(user.name);
Ken

user = { name: "Ken" } のように入れ直すと、そこで TypeError になります。

使える範囲の違い

if の波かっこの中で宣言すると、var は外に漏れ、let は漏れません。

JavaScript

if (true) {
  var a = 1;
  let b = 2;
}
console.log(typeof a);
console.log(typeof b);
number
undefined

var の漏れは、ループの中で同じ名前を使ったときに、別の所の値を書き換えてしまう不具合のもとになります。const と let なら、使える範囲が見た目の波かっこと一致するので、読む人が迷いません。

面接官が見ている点

  • 「const は定数」と言い切らず、入れ直しと中身の書き換えを分けて話せるか
  • なぜ var を使わないのかを、範囲の漏れという具体的な困りごとで説明できるか
  • 自分のコードで const と let をどう使い分けているかを、例で言えるか

確認日 2026年10月17日

面接問題の一覧へ戻る