setIntervalとは
こちらに記載があります。
一定時間が経過するごとに処理を実行する際に使用するものです。
もっとザックリ言えば自動で処理を繰り返す時に使います。
結構タイポする。
私だけかも知れないんですが、結構タイポするんですよね。
kansuuっていう関数があったとしたら以下のように。
setInterval(kansuu(), 1000);
1000ミリ秒毎に繰り返しkansuuを実行して欲しいんですが、これじゃあ希望通りに動かないんですよね。
正しいコード
setInterval(kansuu, 1000);
これが希望通り1000ミリ秒毎にkansuuが実行されるコード。
そういう決まりって覚えれば良いのか?
別にそれでも良いと思います。
でもそれだと何となくよく見るエラーなんて認識になるし、
理解がないから記憶が定着しにくいんですよね。
できれば理由まで知っておくのが吉かと。
動かない理由
最初にリファレンスから引用した文章をもう一度。
一定時間が経過するごとに処理を実行する際に使用するものです。
一定時間が経過するごとに処理を実行します。
ここを覚えてください。
kansuu()の()って何でしたっけ?
そう。関数kansuuの処理を実行するための記述。
なので最初のコードはどう認識されているかというと。。。
setInterval(kansuuの処理内容, 1000);
命令したい「1000ミリ秒毎に繰り返しkansuuを実行」と違うわけですね。だから実行されないという訳です。
最後に
やっぱりプログラマーとしては全てのものに理由がある。
これは忘れてはならないと思います。
個人的には日常生活でもこれは大事だと思いますが、そこまで言うのは余計なお世話な気が
この他にもサーバーの再起動で動作できるようになった、
とか色々何となく理解したつもりの場面はありますが、
全部を言語化できるレベルまで理解したいなあと。
実現可能かはさておき理想は理想として持っておきたいですね。