Javascript 函数未按正确顺序运行
在我的while循环中,我希望它会不断提示用户输入,除非我打破循环。但是,一旦我进入if块,除非我终止代码,否则它将无法生成printtoscreensessage函数 我不知道我做错了什么。我希望它在继续提示之前打印消息。 我怎样才能解决这个问题 让信息; 让我们搜索; 函数printToScreenmessage{ 让outputDiv=document.getElementById'output'; outputDiv.innerHTML=消息; } 功能提示器{ 搜索=提示输入学生姓名; 返回搜索; } 函数搜索学生{ whiletrue{ 搜索=提示用户;Javascript 函数未按正确顺序运行,javascript,Javascript,在我的while循环中,我希望它会不断提示用户输入,除非我打破循环。但是,一旦我进入if块,除非我终止代码,否则它将无法生成printtoscreensessage函数 我不知道我做错了什么。我希望它在继续提示之前打印消息。 我怎样才能解决这个问题 让信息; 让我们搜索; 函数printToScreenmessage{ 让outputDiv=document.getElementById'output'; outputDiv.innerHTML=消息; } 功能提示器{ 搜索=提示输入学生姓名;
forlet i=0;i这是因为浏览器在计算js时不会重新绘制页面。 您可以用setTimeout中的递归调用替换whiletrue:
function searchStudent(){
search =promptUser();
for(let i = 0; i<students.length; i++){
if(search.toLowerCase() === students[i].name.toLowerCase())
{
let student = students[i];
message = `<h4>Student: ${student.name}</h4>`;
message += `<p> Track: ${student.track}
<br> Achievements:${student.achievements}
<br> Points: ${student.points}
</p>`;
printToScreen(message);
}
else if( search ===null || search.toLowerCase() === 'quit'){
message = `<p>Thanks.Goodbye! </p>`;
printToScreen(message);
break;
}
else{
message = `<p> Student ${search} does not exist. Try Again!</p>`;
printToScreen(message);
}
}
setTimeout(function(){
searchStudent();
},5);
}
searchStudent();
你永远不会跳出while循环,你只会跳出for循环。因此你创建了一个无休止的循环。我在哪里可以阅读更多关于这个JavaScript行为的信息,以便我知道将来如何使用它?