関数はプログラムの小さな塊であり、再利用のため、または単にコードの可読性などのため、よく自作する。
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の関数は特に、柔軟便利な反面、初学者や他言語経験者をいろいろ戸惑わせるかも。