welcome: please sign in
location: "ecma関数"の差分
10と11のリビジョン間の差分
2012-10-12 05:43:30時点のリビジョン10
サイズ: 2068
編集者: masahiko
コメント:
2012-10-12 05:59:41時点のリビジョン11
サイズ: 2416
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 74: 行 74:
プログラムとして作成するときは
var宣言を追加すること。
この例ではグローバル変数がsum,iの2つ、ローカル変数は無い。
 {{{
// n項目の値
function kou(n) {
    return 1/n;
}
// 和を求める
var sum, i;
sum = 0;
for(i=1; i<=100; i++) {
    sum = sum + kou(i);
}
print(sum);
 }}}

ECMAscriptの関数

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

  • function kansumei ( hikisuu ) {
            ...
    }
  • kansumei の部分は関数名、hikisuuは引数。
  • { と } に挟まれた部分を関数本体という。

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

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

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


構文

関数定義

  • function.png

関数から戻る

  • return.png


関数の実行

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

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

  1. 引数の名前と、実際の引数の値が対応づけられる。
  2. 関数本体内の文が順に実行される。
  3. return文が実行されたときは、関数の実行を終わる。値を返す。
  4. 本体の最後まで処理されたときは、関数の実行を終わる。値を返さない。


関数呼び出し

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

  • 式の中で関数を記述し、その値を利用できます。
    x = kansu1(...);

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

  • 値を利用しないときは文の形で記述します。
    kansu2(...);

call by value

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

call by reference

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


次の和を求める。

  • sum1.png

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の2つ、ローカル変数は無い。

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

ecma関数 (最終更新日時 2012-10-16 04:15:01 更新者 masahiko)