変数counter
は何らかの理由で変更されず、初期値の50のままです。グローバル変数で、setInterval()によって呼び出される関数の内部で変更しようとしています。Javascript変数はsetInterval()関数内で変更されませんか?
var mode = false;
var counter = 50;
var interval = null;
var increment = false;
var MAX = 50;
var MIN = 0;
var INTERVAL_MS = 3000;
setInterval(doInterval, INTERVAL_MS);
function doInterval() {
if(increment)
{
counter += 1;
}
else
{
console.log("Decrement, " + counter);
counter -= 1;
}
// Set direction
if(counter = MIN)
{
increment = true;
}
else if(counter = MAX)
{
increment = false;
}
console.log("set to " + counter + " (D) Increment next time? " + increment);
// dosomething with the values
}
このコード
デクリメント、50
セット(D)インクリメント50の次回の出力?偽
デクリメント、50
セット50(D)インクリメント次回?偽
減額、50
を50に設定しました(D)次回に増分しますか?偽
そして、それは50だと増分が偽であるのでそう
に、それは49、48になるはずです、しかし私が変数の値を変更することはできませんようです。理由は何でしょうか?このコードはNodeJSアプリケーション内で実行されます。
ああ、この初心者の間違いです。私は端末でプログラミングしていたので、それを見て苦労しました。 –