すぐに動かせるJavaScript入門

関数

JavaScriptで関数を定義するにはfunction文を使用します。構文は次の通りです

function文の構文

function funcname([arg1 [, arg2 [..., argn]]]){
    statements
}

新たに定義する関数の名前をfuncnameに指定し、後ろの括弧に引数を指定します。引数はあっても無くても構わず、引数が複数ある場合はカンマで区切って指定します。関数本体には文をいくつでも記述できますが、関数を定義した時点ではこの文は実行されず、呼出し演算子()を使って呼び出した際に文が実行されます。関数を定義すると新たに関数オブジェクトが生成され、funcnameで指定された名前と同じ名前で新たに生成されたプロパティにその関数オブジェクトが格納されます。プロパティについてはオブジェクトの項を参照ください。最初は例を見た方がわかりやすいかもしれません。

出力:
エラー:

三番目の例では、return文が使用されています。これは関数内部で計算を行い、呼び出し元へ値を返すのに使います。return文は関数本体でしか使用できません。return文に出会うとその時点で関数本体を抜けるため、return文以後の処理は実行されません。そのため普通は関数の末尾に記述しますが、条件分岐などによって複数のreturn文のある関数を記述することもできます。なおreturn文のない関数の戻り値は未定義値(undefined)になります。また、単にreturn;とだけ記述することで関数内部の処理を終了して呼び出し元へ制御を返すのにも使用されます。この場合も関数の戻り値は未定義値(undefined)になります。最後の例では、変数に関数を直接代入しています。この関数部は関数リテラルといい、hw2は関数オブジェクトとなります

since 2013