駆け出しのエンジニア日記

プログラミング言語勉強中の奮闘日記

関数式

・関数式

関数式とは変数(もしくは定数)に関数を値として代入し、後からその変数を呼び出すことで関数を間接的に利用する方法です。

これまでの関数は、下記のように記述していました。

function add(x, y) {
return x + y;
}
add(4, 8); //12

この場合、関数名の「add」を省略することができません。

一方で、

const add = function (x, y) {
return x + y;
}
add(6, 5); //11

関数を変数に代入することで関数名を省略できる書き方もあります。これが関数式です。

関数もJavaScriptにおいては、配列やnumberと同様に「値」であるということがポイントです。

 

高階関数

関数を受け取ったり関数を返す関数

・引数として関数を受け取る

・戻り値に関数を指定できます。

サンプルで下記のように定義ができます。

function callTwice(func) {
func();
}

引数に関数が渡っています。

実際に行ってみます。

function callTwice(func) {
func();
}
 // サイコロの1~6をランダムに出すようにしています。
function rollDie() {
const roll = Math.floor(Math.random() * 6) + 1;
console.log(roll);
}
callTwice(rollDie);

コンソールで再読込みすると、1~6の中でランダムな数字が毎回出力されると思います。

「callTwice(rollDie);」あくまで渡すのは関数そのものになるので「callTwice(rollDie());」と記述しないように注意してください。

()を渡すと実行になるので、全然違う意味になります。今は何も返してないので「undefined」になってしまいます。

 

今回紹介したものは少しイメージしづらい部分があると思いますが、今後よく出てくる記述になるので覚えておきましょう。