javascript是单线程执行的,事件驱动的,可以想象为有一个后台调用队列。
所以setTimeout(fn,0)当时不会执行,只是将fn添加到后台等待运行队列。只有当前代码跑完之后。再执行。
运行得到132。
应用场景:
用户点击一个元素,让令一个输入框获得焦点。
当然这种情况还可以使用label 的for 属性
所以setTimeout(fn,0)当时不会执行,只是将fn添加到后台等待运行队列。只有当前代码跑完之后。再执行。
console.log(1);
setTimeout(function(){console.log(2);},0);
console.log(3);
运行得到132。
应用场景:
用户点击一个元素,让令一个输入框获得焦点。
$('p').mousedown(function(){setTimeout(function(){$(":text").focus();},0);});
当然这种情况还可以使用label 的for 属性
<label for="name">name:</label><input type="text" id="name"/>
本文介绍了JavaScript作为单线程执行语言的特点,通过事件驱动机制实现异步操作,并以setTimeout为例说明了任务队列的工作原理。此外,还提供了一个具体的用户交互场景示例。
5839

被折叠的 条评论
为什么被折叠?



