見出し画像

【ノンプロ研GAS中級講座】スコープと関数

ごきげんよう、な~です。
ノンプロ研GAS中級講座を受講しています。初級講座のときはアウトプットできなかったので、今回はアウトプットもがんばります。

今回は、記念すべき1回目、「スコープと関数」について学んでいきます。


1.スコープ

スコープというと、グローバル領域とローカル領域があります。そこは知っています。グローバル領域では、いろいろしてはいけない、そんなイメージです。私は、グローバル変数も使わないようにしています。

グローバル領域のコードは、すべて実行されるそうです。そのあと、呼び出された関数が実行されます。グローバル領域のコードは、一度すべて実行されます。なので、グローバルに書かれている

console.log(`グローバルで${msg}`);

ログ出力が一番に動きます。今は覚えているけれど、不意に忘れてしまいそうなので、心したいと思います。

グローバルには、むやみにコードを書かない方がいいそうです。


グローバルオブジェクト

いつも使っているスプレットシートの「SpreadsheetApp」とか「DriveApp」とかがデバッカに表示されることを知ったのは新しい発見でした。

画像4

上記、Globalをクリックで開くとGlobalオブジェクトが下記のように一覧表示されます。

画像4


また「SpreadsheetApp」の中もみれますよ👀

画像3

普段使うものしか意識がなく、こんなにたくさんあるのを知ったのでいろいろ見て研究したいなって思いました!

関数スコープ

関数の中だけで使える変数。いつも使っている安心感たっぷりのやつです。

ブロックスコープ

こちらは{}で囲われた部分にのみ有効になる変数です。最初for文やif文の中だけで使えるブロック変数になじみがなくて怖かったのですが、今では大活躍です。forの抜けた後使いたいとかそういう場合は注意が必要かもしれません。


2.関数

関数とは一覧の処理の集まりのことです。関数には引数という値を渡すことができます。また、戻り値という関数の結果を受け取ることができます。

関数にはfunctionからはじまる普通の関数以外にアロー関数やメソッド関数があります。

アロー関数

  const 関数名 = 引数 => {
   処理;  
   return 戻り値;  
 };

メソッド定義

メソッド(仮引数1, 仮引数2,…) {
 //処理
 return 戻り値;
}

プライベート関数

プライベート関数の後ろにはアンダースコア「_」をつけます。講座で聞いていたときは楽勝!って思っていたのですが、その次の日みた2か月前のプログラムでは、アンダースコアが前についていました。すぐ書き換えましたよ!

値渡しと参照渡し

関数の引数で値を渡すときに、値が複製されて渡される(値渡し)場合と、値のあるアドレスが渡される(参照渡し)場合があります。
参照渡しの場合は、関数の中で引数の値に対して操作をすると元の関数の値も変わってしまうため注意が必要です。


ドキュメーションコメント

苦手なやつです。関数を作ったらすぐに書く努力をしています。
課題でもできるだけつけるようにしています。まだまだがんばります。


まとめ

ノンプロ研中級講座【GASコース】第1回目では、スコープと関数について学びました。アロー関数やメソッド定義などいままで使ってこなかったことにも徐々になれていきたいと思っています。

#最近の学び

いいなと思ったら応援しよう!

この記事が参加している募集