2016-09-28 3 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로 설정한다

경우 (X == 0) 사항 clearInterval (S); //는 x 0에서

0

x 시작의 오버 플로우까지 ... 실행하지 마십시오.

는 함수의 라인 하나에, 당신은 그것을 증가. 그러면 1이됩니다. 이 0 경우 선 두에

, 당신은 테스트합니다. 그렇지 않습니다.

그런 다음 간격으로 실행됩니다. 2는 0이 아닙니다. 3은 0이 아닙니다.

조건이 충족되지 않습니다.

0

귀하의 x는

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

그냥 알림 ... 지금까지 0이되지 않습니다

X ++ : 후 실제 x와 증가를 반환

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

++ X : 증가 및 반환 x

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