LoginSignup
1
0

More than 3 years have passed since last update.

【JavaScript】setInterval(kansuu(), 1000);って何で動かないの?

Last updated at Posted at 2019-07-20

setIntervalとは

こちらに記載があります。

一定時間が経過するごとに処理を実行する際に使用するものです。

もっとザックリ言えば自動で処理を繰り返す時に使います。

結構タイポする。

私だけかも知れないんですが、結構タイポするんですよね。
kansuuっていう関数があったとしたら以下のように。

machigai.js
setInterval(kansuu(), 1000);

1000ミリ秒毎に繰り返しkansuuを実行して欲しいんですが、これじゃあ希望通りに動かないんですよね。

正しいコード

seikai.js
setInterval(kansuu, 1000);

これが希望通り1000ミリ秒毎にkansuuが実行されるコード。

そういう決まりって覚えれば良いのか?

別にそれでも良いと思います。
でもそれだと何となくよく見るエラーなんて認識になるし、
理解がないから記憶が定着しにくいんですよね。
できれば理由まで知っておくのが吉かと。

動かない理由

最初にリファレンスから引用した文章をもう一度。

一定時間が経過するごとに処理を実行する際に使用するものです。

一定時間が経過するごとに処理を実行します。
ここを覚えてください。

kansuu()の()って何でしたっけ?

そう。関数kansuuの処理を実行するための記述。
なので最初のコードはどう認識されているかというと。。。

machigai.js
setInterval(kansuuの処理内容, 1000);

命令したい「1000ミリ秒毎に繰り返しkansuuを実行」と違うわけですね。だから実行されないという訳です。

最後に

やっぱりプログラマーとしては全てのものに理由がある。
これは忘れてはならないと思います。
個人的には日常生活でもこれは大事だと思いますが、そこまで言うのは余計なお世話な気が

この他にもサーバーの再起動で動作できるようになった、
とか色々何となく理解したつもりの場面はありますが、
全部を言語化できるレベルまで理解したいなあと。
実現可能かはさておき理想は理想として持っておきたいですね。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0