構文
変数を宣言するキーワードと共に変数名を記述します。
let 変数名;
初期値を合わせて指定することも可能です。
let 変数名 = 初期値;
複数の変数をまとめて記述してもかまいません
let 変数名1, 変数名2;
変数を宣言するキーワード
JavaScriptでは、変数を宣言するために以下の3つのキーワードを使用できます。
var
(古い方法)
var x = 10;
console.log(x); // 10
- 再宣言が可能(同じ名前の変数をもう一度宣言できる)
- 関数スコープ(関数の中で宣言すると、その関数の中だけで有効)
let
やconst
よりも使う機会は少ない(推奨されない)
let
(現在よく使われる方法)
let y = 20;
console.log(y); // 20
- 再宣言できない(同じ名前の変数をもう一度宣言するとエラー)
- ブロックスコープ(
{}
の中で宣言すると、その中だけで有効) - 値の変更が可能
const
(値を変更しない場合に使う)
const z = 30;
console.log(z); // 30
- 再宣言・再代入ができない(値を変更できない)
- ブロックスコープ(
{}
の中で有効)
変数のスコープ(有効範囲)
変数のスコープとは、変数がどこで使えるかを決めるルールです。
- 関数スコープ:
var
は関数の中で有効 - ブロックスコープ:
let
やconst
は{}
(ブロック)の中でのみ有効
function example() {
var a = 1; // 関数スコープ
if (true) {
let b = 2; // ブロックスコープ
const c = 3; // ブロックスコープ
console.log(a, b, c); // 1 2 3
}
console.log(a); // 1
// console.log(b); // エラー(b はブロック内のみ有効)
// console.log(c); // エラー(c はブロック内のみ有効)
}
example();
グローバル変数
グローバル変数は、プログラムのどこからでもアクセスできる変数であり、適切に使用することでコードの柔軟性を高めることができますが、注意点もいくつかあります。
- グローバル変数は、関数の外側で宣言された変数、またはキーワードを使わずに宣言された変数のことです。
- プログラムのどこからでもアクセスできるため、複数の関数やスクリプト間でデータを共有するのに便利です。
関数の外で変数を宣言します。
let globalLet = "これはグローバル変数(let)";
const globalConst = "これはグローバル変数(const)";
console.log(globalLet); // これはグローバル変数(let)
console.log(globalConst); // これはグローバル変数(const)
function test() {
console.log(globalLet); // アクセス可能
console.log(globalConst); // アクセス可能
}
test();
const
で宣言したグローバル変数は再代入不可let
は再代入可能let
やconst
のほうがvar
よりスコープが限定されるため、安全性が高い
See the Pen js-exp01 by Miki Iwamura (@robby_b9) on CodePen.
宣言キーワードまとめ
宣言方法 | 再宣言 | 再代入 | スコープ |
---|---|---|---|
var | 可能 | 可能 | 関数スコープ |
let | 不可 | 可能 | ブロックスコープ |
const | 不可 | 不可 | ブロックスコープ |