js中关于setTimeOut()循环的问题

来源:互联网 发布:ubuntu卸载skype 编辑:程序博客网 时间:2024/06/05 23:46
function stop() {
clearTimeout(t);
}
function checkTime(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
function fun2(week) {
var Week = [ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" ];
return Week[week];
}
function startTime() {
var today = new Date();
var year = today.getFullYear();
var Month = today.getMonth() + 1;
var day = today.getDate();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
var week = today.getDay();
m = checkTime(m);
s = checkTime(s);
document.getElementByIdx_x("txt").value = year + "/"
+ checkTime(Month) + "/" + day + " " + h + ":" + m + ":"
+ s + " " + fun2(week);
t = setTimeout("startTime()", 1000);
}
startTime();
上面代码运行起来是没错
若是这样呢
while(true){
t = setTimeout("startTime()", 1000);
}
今天同学问到了这个为啥不能用循环呢,我给的解释就是用循环没有结束标记一直循环就会内存溢出,内存会爆表,于是乎我就试了试,果然,一试不要紧,360加速球直接从40%跑到99%爆表   电脑滋啦啦的响了一声,于是我只能强制关机,今天又看了看,原来循环不会因为setTimeout的存在而停止,他会跳过循环一直执行,这也就解释了为什么我的电脑会那样。。。
0 0