setTimeout(fn,0)的作用

作者: 小睿7777777 | 来源:发表于2016-03-31 23:14 被阅读647次

hi,朋友们你见到过window.setTimeout(fn, 0)的代码吗?那该语句是什么作用呢?答:延时函数fn的执行(ps 也就是把fn放入事件循环队列,队列是后进后出哟)。那在什么场合下需要延时执行函数fn且时延参数为呢?

栗子:

<input type="text" onkeydown = "document.getElementById('a').innerHTML = 'input is:'+this.value;" />

<div id="a">input is:</div>

运行结果如下图:

为什么输入123,输出的结果是12呢?

因为输入3时所触发的事件级联中,keydown事件的顺序先于给input对象value属性赋值的默认事件,所以输出结果慢了一拍。

针对此问题,解决方案为把onkeydown属性值改为onkeydown="setTimeout(function(){document.getElementById('a').innerHTML= 'input is:'+this.value;},0)"即延迟keydown事件执行。

相关文章

  • setTimeout(fn,0)的作用

    hi,朋友们你见到过window.setTimeout(fn, 0)的代码吗?那该语句是什么作用呢?答:延时函数f...

  • setTimeout(fn, 0) 的作用

    https://www.sogou.com/link?url=hedJjaC291P3yGwc7N55kLSc2l...

  • 详解setTimeout(fn,0)

    最近面试遇到一个题目,是有关setTimeout(fn,0)和闭包应用的,题目如下: 我当时想都没想,直接给面试官...

  • 神奇的setTimeout(fn,0)

    问题场景 最近在用layui写一个小项目,用到了layui的table组件,并且对某一列设置了可编辑属性,如下图,...

  • SetTimeout(fn,0)的问题

    先来看看代码 你肯定知道这个结果是acb 为什么呢?其实这个问题在StackOverflow已经有人回答的很好了点...

  • 定时器,闭包

    1. 什么是闭包?有什么作用? 2. setTimeout 0 有什么作用? setTimeout的作用是将set...

  • nextTick研究报告

    BLOG传送门 nextTickes5源码关于setTimeout(fn,0) 讨论点 常用示例1.mounted...

  • settimeout(function(){},0)

    settimeout(function(){},0) 问题:如上函数,原本settimeout的作用是等待第二个参...

  • 初识js下的定时器

    定时器 setTimeout、setInterval 定时器的使用方法 setTimeout(fn,1000) ...

  • setTimeout和setInterval

    基本知识 setTimeout(fn,t),超时调用,超过时间t,就执行fn。 setInterval(fn,t)...

网友评论

  • mervynyang:那具体的一些系统事件的优先级呢
  • 清水芦苇:`keydown事件(处理程序)的(执行)顺序先于给input对象value属性赋值的操作`这句话说得很好啊

    <input type="text" onkeydown = "console.log(this.value);" />
  • 249efa81dd6e:有
    小睿7777777:@249efa81dd6e 好巧我也前端小白 求粉一下 :relaxed:
  • 小睿7777777:有前端小白在吗

本文标题:setTimeout(fn,0)的作用

本文链接:https://www.haomeiwen.com/subject/cmtylttx.html