LoginSignup
1
0

JavaScriptにおけるスコープ

Posted at

JavaScriptにおけるvarletconstは、変数を宣言するためのキーワードですが、それぞれにはいくつかの重要な違いがあります。

var

  • 関数スコープ: varで宣言された変数は、関数スコープ(またはグローバルスコープ)を持ちます。
  • 巻き上げ(Hoisting): varで宣言された変数は、コード内のどこで宣言されていても関数の先頭に巻き上げられます。
  • 再宣言可能: 同じスコープ内で同じ名前の変数を再宣言できます。
function exampleVar() {
  console.log(a); // undefined
  var a = 5;
  console.log(a); // 5
}

let

  • ブロックスコープ: letで宣言された変数は、ブロックスコープ({}で囲まれた範囲)を持ちます。
  • 巻き上げなし: letで宣言された変数は巻き上げられません。
  • 再宣言不可: 同じスコープ内で同じ名前の変数を再宣言することはできません。
function exampleLet() {
  // console.log(b); // ReferenceError
  let b = 10;
  console.log(b); // 10
}

const

  • ブロックスコープ: constletと同様にブロックスコープを持ちます。
  • 巻き上げなし: constで宣言された変数も巻き上げられません。
  • 再宣言・再代入不可: constで宣言された変数は、再宣言や再代入ができません。
  • 初期値必須: constで変数を宣言する際には、初期値が必須です。
function exampleConst() {
  // console.log(c); // ReferenceError
  const c = 15;
  console.log(c); // 15
  // c = 20; // TypeError
}

まとめ

  • varは古いコードや特定のケースを除き、現代のJavaScript開発ではあまり推奨されません。
  • letは再代入が必要な場合に使用します。
  • constは再代入が不要な場合、つまり値が不変であるべき場合に使用します。

これらの違いを理解することで、変数のスコープや可変性に関するバグを防ぐことができます。

1
0
0

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
0