関数の基本

関数はプログラムの小さな塊であり、再利用のため、または単にコードの可読性などのため、よく自作する。


    関数の定義と実行

    functionのキーワードを使って、あるいくつかの処理をまとめて関数として定義しておく。すると、関数名()というコードだけでその処理を何度も呼び出せる。

    // 定義(まだ実行されない)
    function 関数() {
      // ここにいくつかの処理を書く
    }
    
    // 実行するときは関数名に()を付ける
    関数()
    // もう一度実行
    関数()
    

    引数のある関数

    関数の動作を実行時の状況に合わせて調整したい場合、引数(ひきすう)のある関数を定義する。引数は関数実行時に渡すオブジェクトのこと。

    // 定義
    function 引数のある関数(引数) {
      console.log(引数 * 2)
    }
    
    // 呼び出し
    引数のある関数(1) // 2
    // 引数を変えれば動作が変わる
    引数のある関数(2) // 4
    

    関数定義時の引数を指して仮引数、関数実行時の引数を指して実引数、処理部分を(関数)本体と表現することがある。

    複数の引数にしたいなら、引数1, 引数2のように,区切りで仮引数を定義し、実引数も同様にする。


    戻り値のある関数

    関数の処理の結果を受け取って何かしたい場合、returnのキーワードを使って、戻り値(もどりち)のある関数を定義する。戻り値はオブジェクトで、変数 = 関数()のようにして受け取れる。

    // 定義
    function 戻り値のある関数(引数) {
      let 戻り値 = 引数 * 2
      return 戻り値
    }
    
    // 実行して戻り値を変数で受け取る
    let 変数 = 戻り値のある関数(1)
    console.log(変数) // 2
    

    関数の戻り値を直接に関数の引数として使う

    // 定義
    function 関数(引数) {
      return 引数 * 2
    }
    
    // 戻り値を捨てるケース: 見た目何も起きない
    関数(1)
    
    // 戻り値を変数に代入するケース
    let 変数 = 関数(1)
    
    // 戻り値を変数を経由せず直接に実引数に使うケース
    // 入れ子の()のより内側から順に実行され、戻り値が次の関数の実引数となる
    console.log(関数(関数(1))) // 4
    

    基本はこれくらいで十分、でも…

    上記の基本構造だけで強力にプログラミングでき、初学者やプログラミング教育ならこれで十分。

    しかし、ネット上のコードは同じことを別のやり方で書いていることも多い。JavaScripの関数は特に、柔軟便利な反面、初学者や他言語経験者をいろいろ戸惑わせるかも。