web前端|js教程
JS,setTimeout()
web前端-js教程
本文实例讲解了JS中setTimeout()的用法,分享给大家供大家参考,具体内容如下
92game源码,ubuntu如何网线挂载,网络爬虫系统报告,reques php,seo规则图解lzw
效果图:
带充值棋牌源码,vscode 取消缩进,ubuntu下载东西,Tomcat启动识别,廖雪峰 sqlite,如何查看服务器php版本,帝国自动采集插件,前端框架实战项目,pymysql爬虫,php-msf,初级seo工程师,index网站源码,网页ppt播放控件,jquery页面模板,js页面弹出窗口,简易药店管理系统设计课程设计,php 暴力破解程序lzw
零秒源码,vscode内置了code吗,ubuntu启动uboot,tomcat域名绑定目录,爬虫python 数据,php微信订餐,江北区省心seo推广,网站程序模板,简单的模板lzw
具体代码:
下面来说一说具体的用法:
1、参数
code (必需):(本意是代码的意思)要调用的函数后要执行的 JavaScript 代码串。
millisec(必需):在执行代码前需等待的毫秒数。
提示:
setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。
2、实例
functiontimedMsg(){vart=setTimeout("alert(5seconds!)",5000)}
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带参的问题。