構文
構文は以下の通りです。
// グローバルスコープの変数
let グローバル変数 = "これはグローバルスコープの変数です";
function サンプル関数() {
// 関数スコープの変数
let ローカル変数 = "これは関数スコープの変数です";
console.log(グローバル変数); // グローバルスコープの変数にアクセス
console.log(ローカル変数); // 関数スコープの変数にアクセス
// ブロックスコープの例
if (true) {
let ブロック変数 = "これはブロックスコープの変数です";
console.log(ブロック変数); // ブロックスコープの変数にアクセス
}
// ブロックスコープの外でブロック変数にアクセスしようとするとエラーになります
// console.log(ブロック変数); // エラーになります
}
let グローバル変数 = "これはグローバルスコープの変数です";
function サンプル関数() {
// 関数スコープの変数
let ローカル変数 = "これは関数スコープの変数です";
console.log(グローバル変数); // グローバルスコープの変数にアクセス
console.log(ローカル変数); // 関数スコープの変数にアクセス
// ブロックスコープの例
if (true) {
let ブロック変数 = "これはブロックスコープの変数です";
console.log(ブロック変数); // ブロックスコープの変数にアクセス
}
// ブロックスコープの外でブロック変数にアクセスしようとするとエラーになります
// console.log(ブロック変数); // エラーになります
}
解説
・グローバルスコープ
スクリプト全体からアクセス可能な変数です。スクリプトのどこからでもこの変数を参照できます。
・関数スコープ
関数の中で定義された変数は、その関数内でのみアクセス可能です。関数外からはアクセスできません。
・ブロックスコープ
if文やforループなどのブロック内で定義された変数は、そのブロック内でのみアクセス可能です。ブロック外からはアクセスできません。
プログラミング例
具体的なプログラミング例を紹介します。
let 名前 = "太郎"; // グローバルスコープ
function 自己紹介() {
let 挨拶 = "こんにちは"; // 関数スコープ
if (名前 === "太郎") {
let メッセージ = 挨拶 + "、" + 名前 + "さん!"; // ブロックスコープ
console.log(メッセージ);
}
// ここでメッセージにアクセスしようとするとエラーになります
// console.log(メッセージ); // エラー
}
自己紹介();
function 自己紹介() {
let 挨拶 = "こんにちは"; // 関数スコープ
if (名前 === "太郎") {
let メッセージ = 挨拶 + "、" + 名前 + "さん!"; // ブロックスコープ
console.log(メッセージ);
}
// ここでメッセージにアクセスしようとするとエラーになります
// console.log(メッセージ); // エラー
}
自己紹介();
上記のプログラムは、グローバルスコープ、関数スコープ、ブロックスコープの使い方を示しています。ブロック内で定義した変数は、ブロックの外では使用できないことがわかります。
まとめ
スコープは変数がどこからアクセスできるかを決定します。グローバルスコープの変数はスクリプト全体で使用し、関数スコープの変数はその関数内でのみ使用できます。また、ブロックスコープの変数はブロック内でのみ使用できます。