JS中setTimeout()的用法详解
setTimeout(code,millisec)
code:要调用的函数后要执行的 JavaScript 代码串。(使用函数名作为调用句柄时,不能带有任何参数,也不能加函数调用运算符(),加了以后函数会立即执行,达不到想要的效果。如果非要加,必须把这个函数加引号。)
一个小技巧,它可以实现code写函数带参数。
<script language="JavaScript" type="text/javascript"> <!-- var userName="jack";
//根据用户名显示欢迎信息
function hello(_name){
alert("hello,"+_name);
}
//创建一个函数,用于返回一个无参数函数
function _hello(_name){
return function(){
hello(_name); } }
window.setTimeout(_hello(userName),3000);//-->
</script>
这里定义了一个函数_hello,用于接收一个参数,并返回一个不带参数的函数,在这个函数内部使用了外部函数的参数,从而对其调用,不需要使用参数。在window.setTimeout函数中,使用_hello(userName)来返回一个不带参数的函数句柄,从而实现了参数传递的功能。
返回了一个不带参数的匿名函数,函数调用运算符运算了函数以后,返回了这个匿名函数,然后后面就可以按照我们的想法执行了。
millisec:在执行代码前需等待的毫秒数。
clearTimeout(timeoutID)
它可以让前面这个方法停下来。
timeoutID:setTimeout(code,millisec)赋值的变量名
例:
function hello(){
alert("hello");
}
var id=window.setTimeout(hello,5000);
document.onclick=function(){
window.clearTimeout(id);}
- 此时timeoutID为id
setTimeout()重复执行:使用函数套娃法
function countSecond()
{
x = x+1document.fm.displayBox.value=xsetTimeout("countSecond()", 1000)
}
countSecond()
JS中SetInterval()
setInterval(code,millisec[,“lang”])(第三个参数先不管啦!)
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
- 如果想声明全局变量,变量前面不写var或let就好啦!