icon近年のフロントエンドの盛り上がりはすごいですね。プログラミング初心者がJavaScript(最近ではTypeScriptも)から学び始めるなんて昔ではなかなか考えられなかったことです。そんな世界中で大人気のJavaScriptですが、プログラミングに慣れていても困惑する部分が結構あります。初心者にとっては、非同期処理、this、コールバック関数、あたりが難しいのではないかと思います。非同期処理については前に解説しましたし、thisの解説はネットに大量に転がってるので、今回はコールバック関数について解説します。まとめコールバック関数ってなんなんだコールバック関数というとsetTimeoutなんかで使われるアレですね。Node.jsでもたくさん使われます。2000);これで2秒後に「Hello!」と表示されます。これがコールバック関数です。なんなんですかね、これ。コールバック関数については、だいたい次のような解説がされることが多いです。「別の関数に呼び出してもらうための関数」ええと、つまり?どういうこと?こいつ、「僕はJavaScriptの基礎的な機能ですよ」みたいな顔しつつ、実は結構難しい要素が絡んできます。遠回りしつつコールバック関数への道を辿っていきましょうか。値と関数プログラミングをしたことがあるなら「値」という言葉は馴染み深いと思います。プログラミングにおいては数値はもちろん「値」ですし、文字列も「値」です。trueとfalseも値です。オブジェクトも値です。だいたい全部値ですね。値は変数に突っ込んだり操作したりできます。};変数に値を割り当てていろいろ操作して目的の動作を実現する、というのがプログラミングの基本でしたね。ここで話は変わって「関数」というものもあります。関数は値を受け取って何か処理をして値を返すやつでしたね。3が表示されるこの「関数」ですが、JavaScriptにおいてはちょっと秘密があります。実は関数は変数に突っ込めます。3が表示される変数addFuncに関数を割り当てて、addFuncを呼び出して関数を実行してますね。