見出し画像

GAS GoogleAppsScript スコープとは 基礎講座#17

今回は、GAS GoogleAppsScriptのスコープについて初心者でも簡単にわかるように解説していきます。

GAS GoogleAppsScript スコープとは

GAS GoogleAppsScript スコープとは、変数の参照できる範囲が決まっていてその決まっている範囲を"スコープ"と呼びます。

note GAS専用 ブログ用

上記の添付画像のように変数nameは、どの関数にも属さない位置にステートメントを記述されています。この領域のことをグローバル領域と呼びます。どの関数を実行しても実行されるのがこのグローバル領域です。

プログラムの実行順序

プログラムの実行の順序は、基本的には上から順になっています。その為下記のような順序で書かれた内容は、エラーが返されます。

//呼び出す関数
function main(){
  Logger.log(kakezan(3,2))
  //変数に代入
var kakezan = function(int1, int2){
  var ans = int1 * int2
  return ans;
}
 
}

関数の定義をする場合は、グローバル領域に関数リテラルを変数に代入する形にする必要があります。忘れた方は下記のGAS関数の作成と呼び出し方についてもう一度学習しておきましょう。

実際にグローバル領域に関数リテラルを変数に代入する形にして修正したコードが下記になります。

//呼び出す関数
function main(){
  Logger.log(kakezan(3,2))
}
//変数に代入
var kakezan = function(int1, int2){
  var ans = int1 * int2
  return ans; 
}


今回は、グローバル領域で変数に関数リテラルを代入する形になっているため正しく動作できました。

グローバルスコープとローカルスコープ

実際にグローバル領域で宣言された変数はグローバル変数と呼ばれ、プロジェクトのどこからでも参照できるようになります。

逆に関数の中で宣言された変数はローカル変数と呼ばれ、その関数の中でしか参照することができません。

ここまで話を聞くと全部グローバル変数の方が使用効率高いと思う方がいるかもしれません。しかし、実際にはどこからでも参照できてしまうので実際には、コード量が増えた場合にグローバル変数に使用した名前を覚えておけず意図せずコードを変更してしまったなんてことになりかねません。其のため、できるだけ使わないほうがいいかもしれません。

まとめ

今回はGAS GoogleAppsScript スコープとはについて解説していきましたがいかがでしたでしょうか。実際にグローバルスコープとローカルスコープの大きな違いについて理解できれば今回の目標は達成だと思います^^
実践を積みながら身につけていきましょう♪


この記事が気に入ったらサポートをしてみませんか?