ECMAscriptの関数

関数の定義は次の形式で行う

function kansumei ( hikisuu ) { ...}

kansumei の部分は関数名、hikisuuは引数。

{ と } に挟まれた部分を関数本体という。

関数本体は数行にわたっても良い。

通常、本体の１行目は var 宣言であり、最後は return文である。

本体は右にずらして揃えて書くのがよい。（インデントという）

構文

関数定義

関数から戻る

関数の実行

function ... { ... } が読み込まれた時点では、関数の定義が行われるだけで、本体部分の実行はされない。

関数呼び出しが行われたとき、次の手順で実行される。

引数の名前と、実際の引数の値が対応づけられる。

関数本体内の文が順に実行される。

return文が実行されたときは、関数の実行を終わる。値を返す。

本体の最後まで処理されたときは、関数の実行を終わる。値を返さない。

関数呼び出し

値を利用する関数呼び出し

式の中で関数を記述し、その値を利用できます。

x = kansu1(...);

値を利用しない関数呼び出し

値を利用しないときは文の形で記述します。

kansu2(...);

call by value

引数が number, string, boolean のときは call by value である。

call by reference

引数がオブジェクトのときは call by reference である。

例

次の和を求める。

nを引数として与えて呼び出すとn項目の値を返す関数を定義する。

function kou(n) { return 1/n;}

これを呼び出して1～100項までの和を求める。

sum = 0;for(i=1; i<=100; i++) { sum = sum + kou(i);}print(sum);

プログラムとして作成するときは var宣言を追加すること。 この例ではグローバル変数がsum,iの２つ、ローカル変数は無い。

// n項目の値function kou(n) { return 1/n;}// 和を求めるvar sum, i;sum = 0;for(i=1; i<=100; i++) { sum = sum + kou(i);}print(sum);