関数の定義

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('不合格です');
}