1、问题描述:
上一次用定时器时第一个参数加不加()结果不同
2.定时器用法
js 定时器有以下两个方法:
setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
setTimeout() :在指定的毫秒数后调用函数或计算表达式。
语法
setInterval(code,millisec,lang)
参数 | 描述 |
---|---|
code | 必需。要调用的函数或要执行的代码串。 |
millisec | 必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。 |
lang | 可选。 JScript |
setTimeout(code,millisec,lang)
参数 | 描述 |
---|---|
code | 必需。要调用的函数或要执行的代码串。 |
millisec | 必需。在执行代码前需等待的毫秒数。 |
lang | 可选。 JScript |
由第一个参数描述的是,调用的函数或执行的代码串
一般我们在写的时候会这样写
setInterval(Test(),1);
//这样是不对的
实际上这里的Test()很明显是在执行Test函数,传入的是函数执行的结果.如果我们没有定义返回值的话,就相当于没有什么也没有传入。而定时器是结合函数引用来调度的,因此不带括号,或者写成字符串形式
3.定时器的正确用法
//1.传入函数名,不加括号和引号
setInterval(Test,1000)
//2.传入匿名函数
setInterval(function(){
,1000)
//3.传入字符串,需要加括号
setInterval("Test()",1000)
第三种方法会在全局作用域下查找函数,有时会产生一些问题,所以一般推荐使用前2种方法。