Javascript 尝试循环和停止函数时代码中循环的区别:

Javascript 尝试循环和停止函数时代码中循环的区别:,javascript,Javascript,当我尝试在javascript控制台中运行cycleimagesfunc()时,代码的第一部分可以工作,但第二部分就不行了。我试图跟踪每一次按键,这样按键就会触发函数运行并显示下一幅图像 <p id="demo8">first</p> function cycleimagesfunc(){ if(document.getElementById("demo8").innerHTML==="first"){ document.getElementById("

当我尝试在javascript控制台中运行cycleimagesfunc()时,代码的第一部分可以工作,但第二部分就不行了。我试图跟踪每一次按键,这样按键就会触发函数运行并显示下一幅图像

<p id="demo8">first</p>

function cycleimagesfunc(){
    if(document.getElementById("demo8").innerHTML==="first"){
    document.getElementById("demo8").innerHTML ="third";
    console.log("0");
    return;
    }
    if(document.getElementById("demo8").innerHTML==="third"){
    document.getElementById("demo8").innerHTML ="fourth";
    console.log("1");
    return;
    }
    if(document.getElementById("demo8").innerHTML==="fourth"){
    document.getElementById("demo8").innerHTML ="fifth";
    console.log("2");
    return;
    }


    var cyclecount = 0;
    function cycleimagesfunc(){
    if(cyclecount = 0){
    console.log("0");
    cyclecount++;
    return;
    }
    if(cyclecount = 1){
    console.log("1");
    cyclecount++;
    return;
    }
    if(cyclecount = 2){
    console.log("2");
    cyclecount++;
    return;
    }
    }

首先

函数cycleimagesfunc(){ if(document.getElementById(“demo8”).innerHTML==“first”){ document.getElementById(“demo8”).innerHTML=“第三”; 控制台日志(“0”); 返回; } if(document.getElementById(“demo8”).innerHTML==“third”){ document.getElementById(“demo8”).innerHTML=“第四”; 控制台日志(“1”); 返回; } if(document.getElementById(“demo8”).innerHTML==“第四个”){ document.getElementById(“demo8”).innerHTML=“第五”; 控制台日志(“2”); 返回; } var循环计数=0; 函数cycleimagesfunc(){ 如果(循环计数=0){ 控制台日志(“0”); cyclecount++; 返回; } 如果(循环计数=1){ 控制台日志(“1”); cyclecount++; 返回; } 如果(循环计数=2){ 控制台日志(“2”); cyclecount++; 返回; } }
问题在于使用赋值运算符(
=
)而不是比较运算符(
=
)或(
==
)在您的条件中。这会将
循环计数
改为值。请注意,使用三重等号还可以通过额外检查类型来防止“truthy”值

您也不应该在函数中运行
return
,因为这将防止在满足条件后发生任何进一步的函数逻辑。您可能希望在
循环计数增加后执行某些操作

在下面的示例中,条件是固定的,返回将被删除:

var cyclecount=0;
函数cycleimagesfunc(){
如果(循环计数===0){
控制台日志(“0”);
cyclecount++;
}
如果(循环计数===1){
控制台日志(“1”);
cyclecount++;
}
如果(循环计数===2){
控制台日志(“2”);
cyclecount++;
}
}

cycleimagesfunc();
问题在于使用赋值运算符(
=
)而不是比较运算符(
=
)或(
==
)在您的条件中。这会将
循环计数
改为值。请注意,使用三重等号还可以通过额外检查类型来防止“truthy”值

您也不应该在函数中运行
return
,因为这将防止在满足条件后发生任何进一步的函数逻辑。您可能希望在
循环计数增加后执行某些操作

在下面的示例中,条件是固定的,返回将被删除:

var cyclecount=0;
函数cycleimagesfunc(){
如果(循环计数===0){
控制台日志(“0”);
cyclecount++;
}
如果(循环计数===1){
控制台日志(“1”);
cyclecount++;
}
如果(循环计数===2){
控制台日志(“2”);
cyclecount++;
}
}

cycleimagesfunc();
问题在于在条件句中使用单等号(
=
)而不是双等号(
=
)。如果(cyclecount=0)
是赋值,则感谢黑曜石年龄
。注意:没有代码缩进:p问题在于使用单等号(
=
)而不是条件句中的双等号(
=
)。感谢黑曜石时代
if(cyclecount=0)
是作业。注意:您的代码缩进缺失:pI建议
===
以避免真实问题。我同意,并且我已将答案更新为建议三重等于:)我建议
==
以避免真实问题。我同意,并且我已将答案更新为建议三重等于:)