関数の定義
function文による関数定義
functionキーワードを使った関数の定義function 関数名(引数、引数、....) { 複数の文 return 戻り値; }
関数の定義例
//円錐の体積を求める関数 function calcCone(radius,height){ var dimension = radius * radius * Math.PI; //体積 return Math.round(dimension * height /3); }
関数リテラルによる関数定義
関数リテラルを利用した関数定義では、関数を値として扱うことが出来るので、varを利用して変数に代入できる。//円錐の体積を求める関数 var calcCone = function(radius,height) { var dimension = radius * radius * Math.PI; return Math.round(dimension * height /3); }; //関数リテラルは文なので「;」をつける
高階関数
関数リテラルを使用して関数を変数に代入できるのがJavascriptの特徴。関数の引数として関数を用いたり、関数の戻り値として関数を返したりすることが出来る。
//円錐の体積を求める関数 function calcCone(radius,height) { var dimension = radius * radius * Math.PI; return Math.round(dimension * height /3); } //体積によりサイズを分類する関数(修正前) function getSize(dimension){ if(dimension >=100){ return 'L'; }else if(dimension >=50){ return 'M'; }else{ return 'S'; } } //体積によりサイズを分類する関数(修正版) function getSize2(dimension) { if (dimension >= 80){ return 'L'; }else if(dimension > 40){ return 'M'; }else{ return 'S'; } } //関数を引数にとりサイズを判定する高階関数 function checkSize(func,dimension){ var size = func(dimension) if (size == 'L' || size == 'M'){ return true; }else{ return false; } } var dimension = calcCone(3,5); if(checkSize(getSize2,dimension)){ alert('合格です :'+dimension); }else{ alert('不合格です'); }