Javascript のいろいろな関数 - Javascript

高階関数

関数を「 引数または戻り値 」として扱う関数のことを高階関数といいます。

引数として渡される関数のことをコールバック関数といい、別の関数を引数として受け取る関数を高階関数といいます。

let fruits = [
    { apple : 100 },
    { orange : 80 },
    { banana : 50}
];

function getDate(fruits, txtFormat){
    fruits.forEach(function(value){
        txtFormat(Object.keys(value), value[Object.keys(value)]);
    })
};

function txtFormat(name, price){
    console.log(name + ":" + price);
};

getDate(fruits, txtFormat);

コールバック関数

コールバック関数とは、ほかの関数に引数として渡す関数のことです。

以下の場合、関数 Hello がコールバック関数です。

function Hello(){
    console.log("Hello, World");
};

setTimeout(Hello, 3000);

再帰関数

再帰関数とは、呼び出した関数自体が自分を関数内で再度呼び出す関数の事です。

function count(num){
    if(num > 5){
        return;
    };
    console.log(num);
    return count(++num);
};

count(1);

「 5の階乗 」を再起関数を使って計算するには、以下のようにします。

「 5の階乗 」 とは、1から5までの整数をすべてかけた数です。

function factorial(n) {
    if( n <= 1){
        return 1;
    }
    return n * factorial(n - 1)
}

// 5 の階乗
console.log(factorial(5)); // 120

クロージャ

function closure(){
    let counter = 0;

    return function(){
        return ++counter
    };
};

const Closure = closure();

console.log(Closure()); // 1
console.log(Closure()); // 2
console.log(Closure()); // 3