您好,欢迎访问一九零五行业门户网

实例讲解JS中setTimeout()的用法_javascript技巧

本文实例讲解了js中settimeout()的用法,分享给大家供大家参考,具体内容如下
效果图:
具体代码:
无标题文档

下面来说一说具体的用法:
1、参数
code (必需):(本意是代码的意思)要调用的函数后要执行的 javascript 代码串。
millisec(必需):在执行代码前需等待的毫秒数。
提示:
settimeout() 只执行 code 一次。如果要多次调用,请使用 setinterval() 或者让 code 自身再次调用 settimeout()。
2、实例
clickonthebuttonabove.analertboxwillbedisplayedafter5seconds.

3、实例(2)
functionclockon(bgclock){varnow=newdate();varyear=now.getfullyear();varmonth=now.getmonth();vardate=now.getdate();varday=now.getday();varhour=now.gethours();varminu=now.getminutes();varsec=now.getseconds();varweek; month=month+1;if(month<10)month=0+month;if(date<10)date=0+date;if(hour<10)hour=0+hour;if(minu<10)minu=0+minu;if(sec<10)sec=0+sec;/*vararr_week=newarray(星期日,星期一,星期二,星期三,星期四,星期五,星期六);week=arr_week[day];*/switch(day){case1:week=星期一;break;case2:week=星期二;break;case3:week=星期三;break;case4:week=星期四;break;case5:week=星期五;break;case6:week=星期六;break;default:week=星期日;break;}vartime=;time=year+年+month+月+date+日+week++hour+:+minu+:+sec;if(document.all){bgclock.innerhtml=系统公告:[+time+]}vartimer=settimeout(clockon(bgclock),200);}
4、执行
我们常常会遇到一种情况,settimeout(code,millisec)中code包含形参,
例如:我们需要在1秒后向用户提示的信息存储于变量msg中,
var msg='1shaspassed!';
此时不论是直接执行
settimeout(alert(msg),1000);//alert(msg)会被立即执行
还是
settimeout(“alert(msg)”,1000);//系统报错msgisnotdefined(chrome)
都不能达到预期的目的,因为定时器会努力地将code转化为一个function对象,第一个错例里定时器立即执行code希求返回一个function对象,结果扑了空;第二个虽然成功封装出function对象,但是定时器在msg的可见域外执行code,所以msg得不到正确的传递
推荐的解决办法是使用匿名函数回调
var msg='1shaspassed!';settimeout(function(){alert(msg);},1000);
第一个参数传递了一个会调用所需语句的function对象,这样就解决了code带参的问题。
以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。
其它类似信息

推荐信息