Javascript 我想调用if-else语句中的一个函数,它也在while循环中,这可能吗?
我想调用if-else语句中的一个函数,它也在while循环中,这可能吗?如果我做不到这一点,我怎么能无限重复一个包含2个函数的If-else语句呢。这是完整的文件Javascript 我想调用if-else语句中的一个函数,它也在while循环中,这可能吗?,javascript,while-loop,Javascript,While Loop,我想调用if-else语句中的一个函数,它也在while循环中,这可能吗?如果我做不到这一点,我怎么能无限重复一个包含2个函数的If-else语句呢。这是完整的文件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
</head>
<form>
<input type="radio" name="dtae" onclick="chngXx()">
<input type="radio" name="dtae" onclick="chngX()">
<input type="radio" name="dtae" onclick="chngY()">
</form>
<body>
<script type="text/javascript">
function startTime() {
var today = new Date();
var h = today.getHours();
var x = 0;
if (h > 12) {
h = h - 12;
}
var m = today.getMinutes();
var s = today.getSeconds();
document.getElementById('txt').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
}
function startTime1() {
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
document.getElementById('txt').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime1, 500);
}
var x = 10;
function chngXx() {
x = 0;
}
function chngX() {
x = 100;
}
function chngY(y) {
y = x;
}
//-----------
//Here is my problem
while (true) {
if (y = 100) {
startTime1();
}
else{
startTime();
}
}
//-----------
</script>
<div id="txt"></div>
</body>
</html>
函数startTime(){
var today=新日期();
var h=today.getHours();
var x=0;
如果(h>12){
h=h-12;
}
var m=today.getMinutes();
var s=today.getSeconds();
document.getElementById('txt').innerHTML=
h+“:“+m+”:“+s;
var t=设置超时(开始时间,500);
}
函数startTime1(){
var today=新日期();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
document.getElementById('txt').innerHTML=
h+“:“+m+”:“+s;
var t=设置超时(starttime1500);
}
var x=10;
函数chngXx(){
x=0;
}
函数chngX(){
x=100;
}
功能技术(y){
y=x;
}
//-----------
//这是我的问题
虽然(正确){
如果(y=100){
startTime1();
}
否则{
开始时间();
}
}
//-----------
听起来你真正想要的是一个间隔。使用常量的while循环(如true
)几乎会立即使浏览器崩溃
HTML:
(我不知道y
是从哪里来的,所以我不得不编造一些东西)
为什么不在Javascript中使用定时事件,而不是使用while循环(并锁定主线程)?有了它,您可以独立地运行给定的指令集
window.setInterval(RunStartTime, 10);
function RunStartTime() {
if (y < 100) {
StartTime();
} else {
StartTime1();
}
}
window.setInterval(RunStartTime,10);
函数RunStartTime(){
如果(y<100){
开始时间();
}否则{
StartTime1();
}
}
这里可以看到一个正在运行的示例:您是否尝试了该代码?您是否会使浏览器崩溃?可能吗?对明智?没有上下文就不知道。绝对不明智。JS不能很好地处理无限循环。这闻起来像是一个引用错误,因为未声明y
。如果声明了y
,那么它(尽管我们不知道startTime
和startTime1
做什么)将完全按照您的要求执行(这会阻塞事件循环,可能会阻塞浏览器(如果在浏览器中运行)UI,直到浏览器提示用户终止运行缓慢的脚本)…如果我的回答有问题,请发表意见。我尝试使用你的代码,但它没有执行我的功能,但它可以与其他代码一起工作,我现在附加了整个文档,以便您在需要更多参考时查看。不要使用while
循环,因为您的浏览器会在崩溃前持续0到1秒。而(y=100)
不是比较,(y==100)
是比较。让我知道这是否有效。@people Good know:)如果这解决了您的问题,请设置一个答案:)
var tag = document.getElementById('tag');
setInterval(() => {
var y = Math.round(Math.random() * 10);
if (y === 10) {
tag.textContent = 'is 10';
} else {
tag.textContent = 'isn\'t 10';
}
}, 100)
window.setInterval(RunStartTime, 10);
function RunStartTime() {
if (y < 100) {
StartTime();
} else {
StartTime1();
}
}