java定时器加参数报错_03 JavaStrip 定时器

定时器是浏览器环境下,顶层对象window身上的两个方法,它们会向任务队列中添加任务

1、setInterval 重复执行定时器;

2、setTimeout 延迟执行定时器;

语法:setInterval/setTimeout(函数,时间,函数实参...)

参数1:

1、可以是直接执行的代码,但需要放在引号内(js内部会用eval把字符串转成真正代码);

setTimeout('console.log("第一个参数为一条代码,要放在引号里面")',500);

2、可以是function声明的函数,也可以是个函数名;

setTimeout(()=>console.log('第一个参数是一个函数体'),500);

const fn=()=>console.log('第一个参数是一个函数名')

setTimeout(fn,500);

参数2:

1、单位为毫秒(ms),1s=1000ms,省略默认为浏览器规定的最小间隔时间;

2、最大值为2147483647ms(24.8天),超过的话等同于0;

3、一般这个值给16左右(一般屏幕刷新频率为60Hz,会每秒重绘60次,1000ms/60≈16.7ms)屏幕分辨率->高级设置->监视器中查看和设置);

参数3:

1、如果第一个参数里是function声明的函数,那从第三个参数开始就是这个函数的实参,参数个数与形参一致;

2、IE6789不支持第三个参数,但不会报错,参数为undefined;

setTimeout((name,age)=>console.log('我的名字叫:'+name+';年龄为:'+age),500,'kaivon',18);

作用

改变事件冒泡的顺序

点击

const input=document.querySelectorAll("input")[0],

btn=document.querySelector("button");

btn.οnclick=function(){

setTimeout(()=>input.value+=' button',0);

};

document.body.οnclick=function(){

input.value+=' body';

};

解决键盘事件造成的问题

点击

const input1=document.querySelectorAll("input")[1]

input1.οnkeydοwn=function(){

//console.log(this.value);

setTimeout(()=>console.log(this.value),0);

}

我们发现如果不用定时器的时候,点击按钮打印的都是上一次输入的内容,原因是事件发生的速度非常的快,比浏览器接受的内容还快。意思就是当我们输入内容,点击按钮的时候,浏览器还没接收到数据,事件就发生了。所以永远取的都是上一次的内容。获取但当我们加入定时器的时候,就能准确的打印我们当下输入的内容,原因是定时器是在上一次事件循环才执行的,到第二次循环的时候,页面肯定能接收到内容了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值