JS种setInterval和setTimeout中参数括号的问题

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种方法。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值