ここではユーザー関数について説明します.JavaScriptにいて関数をコールするには,単に「関数名();」とすればよい.関数名の後ろの( )内には,関数に受け渡すデータを書きます.このデータのことを実引数と呼びます.これに対して,関数側では,変数を受け取るために,変数を書きます.そしてこの変数を仮引数と呼びます.
引数がいくつかあればカンマ(,)でくぎりますが,ない場合は省略します.そして関数の最後,またはreturn文により,コールされた元へリターンします.この際,return文の式の値が戻り値として,コール元へ返されます.
関数名([実引数の並び]); ・・・・関数のコール
function 関数名([仮引数の並び]){ ・・・・関数の定義
[ 文 ]
[ return(式) ;] ・・・・値が返される,戻り値
}
<SCRIPT LANGUAGE="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>
ちなみにMathオブジェクトに絶対値を求めるabsメソッドがあります.
とすれば同様の結果がえられます.
<SCRIPT LANGUAGE="JavaScript">
<!--
var i=3,j=-12;
document.write( Math.abs( i ) , "<BR>" ); //Mathオブジェクトのabsメソッド使用
document.write( Math.abs( j ) , "<BR>" ); //Mathオブジェクトのabsメソッド使用
//-->
</SCRIPT>
<SCRIPT LANGUAGE="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>
ソートの考え方:n個のデータの中から最小項をさがし,それを第1項と交換します.これで1項は決定したので,次に第2項以降のn-1個のデータの中から最小項をさがし,それを第2項と交換します.これをn-1回繰り返すと,データが小さい順にソートできます.