• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavascriptのtimerIDの意味)

JavascriptのtimerIDの意味

このQ&Aのポイント
  • JavascriptのtimerIDの意味を理解しよう
  • timerIDはタイマーを識別するID番号を表す
  • timerIDの値が0の場合、タイマーはストップしている

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>タイマーを識別するID番号ということはなんとなく理解できるのです この手の問題は、経験をつめば、簡単に理解できるようになります。よく学校とかだとロジックを学びますが、ペットボトルをロケットにするなんて事は学校では教えてくれません。 ポイントは >clearTimeout(timerID); ですね。質問者が書いていますが「タイマーを識別するID番号」ですよね。”番号”てことです、setTimeout の戻り値で整数ですね。起動が成功すると、0より大きい整数がセットされるわけです。これはECMAのリファレンスで、成功した場合は、何の値がもどり、失敗した場合は何がもどり、その他のエラーは何が戻るか、確認してください。 http://www.google.co.jp/search?hl=ja&q=ECMA+%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9&lr=lang_ja#fp=b998e3b4af03b4ad&hl=ja&lr=lang_ja&psj=1&q=+ECMAScript%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%80%80%E3%80%80setTimeout&tbs=lr:lang_1ja 関数は、必ず、そうやって、その3パターンを考慮して戻り値を用意しておくものです。自作の関数も、そのように用意しましょう。今回の場合、その戻り値を使って、clearTimeoutに渡して、止める。では、setTimeoutが何らかの要因で動作しなかった場合は、関数の仕様にしたがえばいいが、ユーザーが途中で止めた場合、ユーザー操作によるキャンセルを、どうやって、記録にのこしておけばいいいのだろう。 と、考えると、何か変数を別によういして 例えば statusID に true をセットするとかすればいいが、そんなことしなくても、timerID に違う意味をもたせれば、いいこに経験をつめば容易に気がつく物です。そう、”初期化”(initialisation) よく init なんて感じで略している事が多いですね。 つまり、 >function stop(){ などを見ると、 >if(timerID){ で評価しています、true(1) or false(0) ですね。データ型をJavaScript のやり方にしたがってあわせたってことです。このようなあいまいさを、CSSなどのハック(クロスブラウザ)で利用しています。 他にもいっぱい、いいやり方があるので、そっちを見つけたら、そっちに変えて完成させた方がいいレベルの物です。

11309646Ks
質問者

お礼

非常に詳しく解説して頂き、ありがとうございます。 関数の扱い方など、プログラミングを行う上での考え方の面でもとても為になりました。

関連するQ&A