日期:2014-05-16  浏览次数:20389 次

javascript中,setTimeout的小问题,在线等
下面的javascipt代码,可以实现每隔一秒可弹出一个对话框,此弹出过程可待续1分钟的是

1 var id=setInterval(alert("hello"),1000);
      setTimeout(clearInterval(id),5*1000);
2  setInterval(function(){
alert("hello")
},1000;setTimeout(function(){
alert("hello")},5*1000);
3 setInterval(
alert("hello"),1000
);
setTimeout(clearInterval(id),5*1000);
4 var id=setInterval(function(){
alert("hello")},5*1000);
setTimeout(function(){
clearInterval(id)},5*1000);


大家帮我看下,哪个是对的,再说明下理由 thanks

------解决方案--------------------
都不对!
按你的题目,1要改下
var id=setInterval('alert("hello")',1000);
setTimeout("clearInterval(id)",60*1000);

------解决方案--------------------
如果只谈语法的话  4是对的
------解决方案--------------------
你要待续1分钟,可你的代码都是待续5秒钟
setInterval()和setTimeout()的第一个参数的字符串没加引号

------解决方案--------------------
4对

1 setInterval(alert("hello"),1000);  错了
setInterval([这里应该放一个函数地址或字符串],[时间(毫秒)])
这是可以的 setInterval('alert("hello")',1000); 字符串'alert("hello")'会被反射执行
setTimeout(clearInterval(id),5*1000); 错了
clearInterval() 是一个返回值为 null 的函数。所以这句话等价于 setTimeout(null,5*1000); null不能被执行

2 setTimeout(function(){alert("hello")},5*1000) 这是想干嘛?不切题

3 与1同样问题
------解决方案--------------------
好吧,4也不全对,时间设定有问题,不是1分钟
------解决方案--------------------
setInterval(function(){},time) 
setTimeout(function(){},time) 
------解决方案--------------------
这个你自己测试一下就不全知道了。
------解决方案--------------------
4的语法正确。

不过我想说的是,难道 1分钟=5秒