PORTFOLIO & WEB DESIGN MEMORANDOM BLOG   
PORTFOLIO & WEB DESIGN MEMORANDOM BLOG   

【Javascript 】Javascriptの基礎 変数について


変数の宣言の種類について

JavaScriptの変数は、データを一時的に保存するために使用されます。変数を宣言し、値を代入することで、後でその値を操作することができます。

JavaScriptでは、変数を宣言するために var、let、および const の3つのキーワードが使用されます。

var

var は古くからある変数宣言の方法で、現在ではあまり推奨されていません。関数スコープを持ち、再宣言が可能です。

  1. var x = 10;
  2. console.log(x); // 10

let

let はブロックスコープを持つ変数宣言方法で、再宣言はできません。必要に応じて値を変更できます。

  1. let y = 20;
  2. console.log(y); // 20
  3. y = 30;
  4. console.log(y); // 30

const

const はブロックスコープを持ち、一度値を代入すると変更できない定数を宣言するために使用されます。

  1. const z = 40;
  2. console.log(z); // 40
  3. // z = 50; // エラー: Assignment to constant variable.

スコープについて

スコープとは、変数が有効な範囲のことです。

グローバルスコープ

変数が関数の外で宣言されている場合、その変数はグローバルスコープにあります。これはプログラム全体でアクセス可能です。

  1. var globalVar = "I am global";
  2. function testGlobalScope() {
  3.     console.log(globalVar); // I am global
  4. }
  5. testGlobalScope();
  6. console.log(globalVar); // I am global

ローカルスコープ

変数が関数の中で宣言されている場合、その変数はローカルスコープにあります。これはその関数内でのみアクセス可能です。

  1. function testLocalScope() {
  2.     var localVar = "I am local";
  3.     console.log(localVar); // I am local
  4. }
  5. testLocalScope();
  6. // console.log(localVar); // エラー: localVar is not defined

ブロックスコープ

let や const を使用して宣言された変数はブロックスコープを持ちます。これは、変数が宣言されたブロック({} で囲まれた範囲)内でのみ有効です。

  1. if (true) {
  2.     let blockScopedVar = "I am block scoped";
  3.     console.log(blockScopedVar); // I am block scoped
  4. }
  5. // console.log(blockScopedVar); // エラー: blockScopedVar is not defined

変数の再代入と再宣言

var で宣言された変数は再代入および再宣言が可能です。let は再代入が可能ですが再宣言はできません。const は再代入も再宣言もできません。

  1. // varの再代入と再宣言
  2. var a = 1;
  3. a = 2;
  4. var a = 3;
  5. console.log(a); // 3
  6. // letの再代入
  7. let b = 1;
  8. b = 2;
  9. console.log(b); // 2
  10. // letの再宣言
  11. // let b = 3; // エラー: Identifier 'b' has already been declared
  12. // constの再代入と再宣言
  13. const c = 1;
  14. // c = 2; // エラー: Assignment to constant variable.
  15. // const c = 3; // エラー: Identifier 'c' has already been declared

まとめ

var は関数スコープを持ち、再宣言が可能。
let はブロックスコープを持ち、再宣言は不可だが再代入は可能。
const はブロックスコープを持ち、再宣言も再代入も不可。

MILMONA   MILMONA   MILMONA   MILMONA   MILMONA   
MILMONA   MILMONA   MILMONA   MILMONA   MILMONA