関数

Index  Back  Next
【関数】

  ここではユーザー関数について説明します。JavaScript にいて関数をコールする
 には、単に「関数名();」とすればよい。関数名の後ろの () 内には、関数に受け渡
 すデータを書きます。このデータのことを実引数と呼びます。これに対して、関数側
 では、変数を受け取るために変数を書きます。そしてこの変数を仮引数と呼びます。
  関数名( [実引数の並び] );          ・・・・関数のコール

  function 関数名( [仮引数の並び] )  ・・・・関数の定義
  {
    [ 文 ]
    [ return ( 式 ); ]       ・・・・値が返される、戻り値
  }
  引数がいくつかあればカンマ(,)でくぎりますが、ない場合は省略します。そして
 関数の最後、または return 文により、コールされた元へリターンします。この際、
 return 文の式の値が戻り値として、コール元へ返されます。
【関数における変数】

  前にも述べたと思いますが、関数内で宣言された変数は、その関数内で有効なもの
 であり、全ての関数で共通に使用したいなら、変数を関数の外で宣言しなくてはいけ
 ません。
【例1】

  ここでは絶対値を求める関数 Abs() を作り、3 と -12 の絶対値を求めてみた。
  <SCRIPT TYPE="text/JavaScript">
  <--
  function Abs( a )
  {
    if( a >= 0 ) {
      return a;  // (1)
    } else {
      return -a;  // (2)
    }
  }
  var i = 3, j = -12; // 3 と -12 の絶対値を求める
  document.write( Abs( i ) );
  document.write( Abs( j ) );
  //-->
  </SCRIPT>

【解説】

 (1) a が正ならそのままの値を返します。
 (2) a が負なら符号を反転した値を返します。

 ちなみに Math オブジェクトに絶対値を求める abs メソッドがあります。
  <SCRIPT TYPE="text/JavaScript">
  <--
  var i = 3, j = -12;
  document.write( Math.abs( i ), "<BR>" ); Math の abs Method 使用
  document.write( Math.abs( j ), "<BR>" ); Math の abs Method 使用
  //-->
  </SCRIPT>
 とすれば同様の結果がえられます。
【実行結果】


【例2】

  データの入った配列を引数として渡し、小さい順に並べ替える関数 Sort() と
 平均値を求める Mean() を作る。
  <SCRIPT TYPE="text/JavaScript">
  <--
  function Mean( n, a )  // (1)
  {
    var k, sum = 0;
    for( k = 0 ; k < n ; k++ ) { // 合計を算出
      sum = sum + a[k];
    }
    return ( sum / n ); // 値平均をコール元へ返す
  }
  function Sort( n, a )  // (2)
  {
    var k, l, s, Min, dumy;
    for( k = 0 ; k < n - 1 ; k++ ) {
      Min = a[k];
      s = k;
      for( l = k + 1 ; l < n ; l++ ) {
        if( a[l] < Min ) {
          Min = a[l];
          s = l;
        }
      }
      dumy = a[k]; // 交換の為にダミーに一時格納
      a[k] = a[s]; // 第 k 項に s 項の値を代入
      a[s] = dumy; // 第 s 項に dumy の値を代入する事で交換完了
    }
  }
  var i;
  var P = new Array(5);
  P[0] = 100;  // データ
  P[1] = 200;
  P[2] = 5.5
  P[3] = 1000;
  p[4] = 120;
  Sort( 5, P ); // 並び替え
  for( i = 0 ; i < 5 ; i++ ) {
    // 小さい順に表示
    document.write( "No.", i + 1, " ", P[i], "<BR>" );
  }
  document.write( "平均値=", Mean( 5, P ) ); // 平均値の算出と表示
  //-->
  </SCRIPT>

【解説】

 (1) 平均値を求める関数。
 (2) 配列データを小さい順にソートする関数

  ソートの考え方: n 個のデータの中から最小項をさがし、それを第 1 項と交換し
 ます。これで 1 項は決定したので、次に第 2 項以降の n - 1 個のデータの中から
 最小項をさがし、それを第 2 項と交換します。これを n - 1 回繰り返すと、データ
 が小さい順にソートできます。
【実行結果】