教えて!GAS!

GASの基礎知識・書き方について紹介します。

Google Apps Scriptでのスコープとその種類について

構文

構文は以下の通りです。

// グローバルスコープの変数
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(メッセージ); // エラー
}
自己紹介();

上記のプログラムは、グローバルスコープ、関数スコープ、ブロックスコープの使い方を示しています。ブロック内で定義した変数は、ブロックの外では使用できないことがわかります。

まとめ

スコープは変数がどこからアクセスできるかを決定します。グローバルスコープの変数はスクリプト全体で使用し、関数スコープの変数はその関数内でのみ使用できます。また、ブロックスコープの変数はブロック内でのみ使用できます。