2016-09-28 5 views
-4

私は条件に基づいてclearIntervalにしようとしています。どうしたの?私のclearIntervalに何が問題なのですか?

function Dog() { 
    var x = 0; 
    var s = setInterval(function y() { 
     console.log(x++); 
     if (x == 0) clearInterval(s); 
    }, 1000); 
    return ''; 
}; 
Dog(); 
+0

実際の問題点を明確に説明してください。 *何が間違っていますか?* - 人々は問題を見つけ出して解決策を提供しません。 – thefourtheye

+0

'x'は' f(x == 0) '文で決して' 0'にならないので、 'clearInterval(s)'は決して呼び出されません。 – Titus

+0

無限ループです –

答えて

0

console.log(x ++); //最初の呼び出し時にXが1に設定されます

if(x == 0)clearInterval(s); //実行されませんでした... xのオーバーフローまでx

0

x0から始まります。

オンライン機能の1つで、それを増分します。したがって、1になります。

オンライン2の場合は、0かどうかをテストします。そうではありません。

次に、間隔が実行されます。 2は0ではありません。3は0ではありません。

条件が満たされません。

0

あなたのxは今までに0ではありません...

function Dog() { 
    var x = 0; 
    var s = setInterval(function y() { 
    console.log(x++); 
    if (x == 1) clearInterval(s); 
    }, 1000); 
    return ''; 
}; 
Dog(); 

だけのリマインダー:

X ++:

var x = 0; 
console.log(x++); // returns 0 
console.log(x); // returns 1 

後、実際のxおよび増分を返し++ X :インクリメントとリターンx

var x = 0; 
console.log(++x); // returns 1 
console.log(x); // returns 1 
関連する問題