関数したい(function

1function 関数名(引数) {
2    // 関数を定義
3    const book = SpreadsheetApp.getActiveSpreadsheet();
4    const sheet = sheet.getSheetByName(引数);
5    const range = sheet.getDataRange();
6    const data = range.getValues()
7    return data;
8}

functionを使って関数を定義できます。 GASプロジェクトは、このfunctionを使った関数の集合体として作成することがほとんどです。 同じプロジェクト内で、ファイルを分けることができますが、すべてグローバルな関数として扱われるため、関数名が重複しないように気をつける必要があります。

オプションしたい

 1function 関数名(位置引数, options={}) {
 2
 3    // オプションの初期値を設定
 4    const {オプション1 = 初期値, オプション2 = 初期値} = options;
 5
 6    // オプションによる条件分岐
 7    if (オプション1) {
 8        // 処理
 9    }
10}

JSでは名前付きの引数を設定することができません。 しかし、オブジェクトを引数にすることで、名前付き引数のように動作させることができます。

関数式したい

1const add = function(a, b) {
2    return a + b;
3}

関数を変数に代入できます。

アロー関数したい

1const 関数名 = (引数) => 返り値;
2const add = (a, b) => a + b;

アロー関数はES6で導入された書式です。 単純な処理は、アロー関数で書くとよいみたいです。

関数定義の書式について

歴史的な経緯からJavaScriptには関数を定義する書式が複数あります。 まずは、functionを使った書式を体得すればよいと思います。 この書式は、初期のJSから使えるものですが、 JSでは後方互換性を保つことが大事にされているため、モダンJSでも動作します。

アロー関数はES6で新機能として導入された書式です。 利用可能な環境であれば積極的に使えばよいと思います。 いろいろと省略できるため、function書式に比べてコード行数を圧倒的に減らすことができます。

ただし、しばらく使ってみた感想として、複雑な処理を書くとあとで分かりにくいなと感じました。 それぞれ機能と構文が異なりますが、可読性の観点からも、書式の使い分けを考えてもよさそうです。