【Javascript 】Javascriptの基礎 変数について
変数の宣言の種類について
JavaScriptの変数は、データを一時的に保存するために使用されます。変数を宣言し、値を代入することで、後でその値を操作することができます。
JavaScriptでは、変数を宣言するために var、let、および const の3つのキーワードが使用されます。
var
var は古くからある変数宣言の方法で、現在ではあまり推奨されていません。関数スコープを持ち、再宣言が可能です。
- var x = 10;
- console.log(x); // 10
let
let はブロックスコープを持つ変数宣言方法で、再宣言はできません。必要に応じて値を変更できます。
- let y = 20;
- console.log(y); // 20
- y = 30;
- console.log(y); // 30
const
const はブロックスコープを持ち、一度値を代入すると変更できない定数を宣言するために使用されます。
- const z = 40;
- console.log(z); // 40
- // z = 50; // エラー: Assignment to constant variable.
スコープについて
スコープとは、変数が有効な範囲のことです。
グローバルスコープ
変数が関数の外で宣言されている場合、その変数はグローバルスコープにあります。これはプログラム全体でアクセス可能です。
- var globalVar = "I am global";
- function testGlobalScope() {
- console.log(globalVar); // I am global
- }
- testGlobalScope();
- console.log(globalVar); // I am global
ローカルスコープ
変数が関数の中で宣言されている場合、その変数はローカルスコープにあります。これはその関数内でのみアクセス可能です。
- function testLocalScope() {
- var localVar = "I am local";
- console.log(localVar); // I am local
- }
- testLocalScope();
- // console.log(localVar); // エラー: localVar is not defined
ブロックスコープ
let や const を使用して宣言された変数はブロックスコープを持ちます。これは、変数が宣言されたブロック({} で囲まれた範囲)内でのみ有効です。
- if (true) {
- let blockScopedVar = "I am block scoped";
- console.log(blockScopedVar); // I am block scoped
- }
- // console.log(blockScopedVar); // エラー: blockScopedVar is not defined
変数の再代入と再宣言
var で宣言された変数は再代入および再宣言が可能です。let は再代入が可能ですが再宣言はできません。const は再代入も再宣言もできません。
- // varの再代入と再宣言
- var a = 1;
- a = 2;
- var a = 3;
- console.log(a); // 3
- // letの再代入
- let b = 1;
- b = 2;
- console.log(b); // 2
- // letの再宣言
- // let b = 3; // エラー: Identifier 'b' has already been declared
- // constの再代入と再宣言
- const c = 1;
- // c = 2; // エラー: Assignment to constant variable.
- // const c = 3; // エラー: Identifier 'c' has already been declared
まとめ
var は関数スコープを持ち、再宣言が可能。
let はブロックスコープを持ち、再宣言は不可だが再代入は可能。
const はブロックスコープを持ち、再宣言も再代入も不可。