无法弄清楚这个 if 语句是错误的还是 clearInterval
Can't figure out whether this if statement is wrong or the clearInterval
正在研究我在网上找到的一些教程,然后我遇到了这个,不知道为什么我的 if 语句不起作用
var myVar;
var myNum;
myNum = 0;
function alertFunc() {
myNum = myNum + 1;
console.log("Hello! " + myNum);
}
function myFunction() {
myVar = setInterval(alertFunc, 1000);
if (myNum == 3) {
clearInterval(myVar);
}
}
console.log(myFunction());
只是因为它没有再次调用 myFunction() 它只检查第一次的 if 条件,即 0
var myVar;
var myNum;
myNum = 3;
function alertFunc() {
myNum = myNum + 1;
console.log("Hello! " + myNum);
console.log(typeof myNum);
}
function myFunction() {
myVar = setInterval(alertFunc, 1000);
if (myNum == 3) {
clearInterval(myVar);
}
}
console.log(myFunction());
你应该检查条件
if (myNum == 3) {
clearInterval(myVar);
}
在您的 alertFunc()
中,因为它在每个时间间隔执行。你的 if 的当前位置永远不会是真的,因为它在你设置间隔后只运行一次,myNum
在你初始化它时是 0。
这是您想要的。
var myVar;
var myNum;
myNum = 0;
function alertFunc() {
if (myNum == 3) {
clearInterval(myVar);
} else {
myNum = myNum + 1;
console.log("Hello! " + myNum);
}
}
function myFunction() {
myVar = setInterval(alertFunc, 1000);
}
console.log(myFunction());
您需要像下面那样在 alertFunc
中调用 clearInterval
function alertFunc() {
myNum = myNum + 1;
console.log("Hello! " + myNum);
if (myNum == 3) {
clearInterval(myVar);
}
}
从 myFunction
你用 setInterval
调用 alertFunc
所以下面的代码不会执行
我想你想清除间隔。
function myFunction() {
myVar = setInterval(alertFunc, 1000);
if (myNum == 3) { // this if blocktrue will never happen
clearInterval(myVar);
}
}
原因:上面的 if 块永远不会发生,因为当 myNum 为 1 时它被调用 一次。
所以需要重写interval函数中的check,如下所示
var myVar;
var myNum;
myNum=0;
function alertFunc() {
myNum=myNum+1;
console.log("Hello! " + myNum);
if (myNum==3){ //when myNum is 3 clear the timer interval.
clearInterval(myVar);
}
}
function myFunction() {
myVar = setInterval(alertFunc, 1000);
}
console.log(myFunction());
正在研究我在网上找到的一些教程,然后我遇到了这个,不知道为什么我的 if 语句不起作用
var myVar;
var myNum;
myNum = 0;
function alertFunc() {
myNum = myNum + 1;
console.log("Hello! " + myNum);
}
function myFunction() {
myVar = setInterval(alertFunc, 1000);
if (myNum == 3) {
clearInterval(myVar);
}
}
console.log(myFunction());
只是因为它没有再次调用 myFunction() 它只检查第一次的 if 条件,即 0
var myVar;
var myNum;
myNum = 3;
function alertFunc() {
myNum = myNum + 1;
console.log("Hello! " + myNum);
console.log(typeof myNum);
}
function myFunction() {
myVar = setInterval(alertFunc, 1000);
if (myNum == 3) {
clearInterval(myVar);
}
}
console.log(myFunction());
你应该检查条件
if (myNum == 3) {
clearInterval(myVar);
}
在您的 alertFunc()
中,因为它在每个时间间隔执行。你的 if 的当前位置永远不会是真的,因为它在你设置间隔后只运行一次,myNum
在你初始化它时是 0。
这是您想要的。
var myVar;
var myNum;
myNum = 0;
function alertFunc() {
if (myNum == 3) {
clearInterval(myVar);
} else {
myNum = myNum + 1;
console.log("Hello! " + myNum);
}
}
function myFunction() {
myVar = setInterval(alertFunc, 1000);
}
console.log(myFunction());
您需要像下面那样在 alertFunc
中调用 clearInterval
function alertFunc() {
myNum = myNum + 1;
console.log("Hello! " + myNum);
if (myNum == 3) {
clearInterval(myVar);
}
}
从 myFunction
你用 setInterval
调用 alertFunc
所以下面的代码不会执行
我想你想清除间隔。
function myFunction() {
myVar = setInterval(alertFunc, 1000);
if (myNum == 3) { // this if blocktrue will never happen
clearInterval(myVar);
}
}
原因:上面的 if 块永远不会发生,因为当 myNum 为 1 时它被调用 一次。
所以需要重写interval函数中的check,如下所示
var myVar;
var myNum;
myNum=0;
function alertFunc() {
myNum=myNum+1;
console.log("Hello! " + myNum);
if (myNum==3){ //when myNum is 3 clear the timer interval.
clearInterval(myVar);
}
}
function myFunction() {
myVar = setInterval(alertFunc, 1000);
}
console.log(myFunction());