function count( )
{
var dateAndTime = new Date();
var year = dateAndTime.getFullYear();
var month = dateAndTime.getMonth();
var realMonth = parseInt(month) + 1;
var day = dateAndTime.getDate();
document.getElementById("date").value = year + "年" + realMonth + "月" + day + "日";
var hour = dateAndTime.getHours();
var minute = dateAndTime.getMinutes();
var second = dateAndTime.getSeconds();
document.getElementById("time").value = hour + "时" + minute + "分" + second + "秒";
setTimeout('count()',500);
}
这是用js写的一个显示时间的函数,感觉怪怪的,想知道到底是不是递归呢?为什么我写成死循环,在循环里设定时间延迟
浏览器就死掉了,这样却可以?
{
var dateAndTime = new Date();
var year = dateAndTime.getFullYear();
var month = dateAndTime.getMonth();
var realMonth = parseInt(month) + 1;
var day = dateAndTime.getDate();
document.getElementById("date").value = year + "年" + realMonth + "月" + day + "日";
var hour = dateAndTime.getHours();
var minute = dateAndTime.getMinutes();
var second = dateAndTime.getSeconds();
document.getElementById("time").value = hour + "时" + minute + "分" + second + "秒";
setTimeout('count()',500);
}
这是用js写的一个显示时间的函数,感觉怪怪的,想知道到底是不是递归呢?为什么我写成死循环,在循环里设定时间延迟
浏览器就死掉了,这样却可以?
【1】函数是否可以无限执行
【2】函数是否有终止条件,没有终止条件那就是死循环了2.写成死循环浏览器会死掉
因为你写成死循环了,浏览器会一直在执行这个循环代码,浏览器肯定不会响应,因为这部分js代码没有执行完全。setTimeout('count()',500); 这句话是延迟执行,0.5秒之后再次执行count函数,这个地方时异步的,而写成死循环是同步的,所有两者是有区别的3.另外一种写法
这种写法可以满足0.5秒执行一次,既然要间隔时间执行,建议楼主这么写
function count(){
alert(1);
} window.setInterval(function(){
count();
},500);
每隔500毫秒执行一次count函数。