JS中事件以及语句运行顺序的问题

Posted ge1in

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中事件以及语句运行顺序的问题相关的知识,希望对你有一定的参考价值。

先来看看问题:

问题:
1.为何onfoucs事件在这段代码中是最后才执行的?
2.这里有涉及到异步?不然的话为何onfocus事件还没执行,就继续解析下一段代码了?
技术分享图片代码如图:

技术分享图片

我在chrome,FF浏览器的运行结果得到的顺序都是:
1.console.log(document.readyState)
2.alert()语句
3.最后才是onfocus方法

运行结果:
1.一定是先出现loading的,否则alert会阻塞进程。

技术分享图片
技术分享图片
2.当我按下确定,则出现了下一段的test

技术分享图片

 

这里面涉及到JS中的事件运行机制问题:

原理是:当DOM事件,异步任务等执行的时候,JS会把他们push到任务队列中等到当前主进程中的同步任务执行完毕后才会读取任务队列中的事件。因此,上述代码中的代码,onfocus永远都是最后执行,因为他是DOM事件同时他是异步的

附上我在SF上面的本次问题的参考:https://segmentfault.com/q/1010000012255353
技术分享图片











以上是关于JS中事件以及语句运行顺序的问题的主要内容,如果未能解决你的问题,请参考以下文章

2016.6.18主窗体子窗体InitializeComponent()事件Load事件发生顺序以及SeleChanged事件的发生

node.js 如何决定一个语句是不是被异步处理?

ORCLE-Select 语句执行顺序以及如何提高Oracle 基本查询效率

一文搞懂Node.js以及浏览器中的事件循环机制

JavaScript笔记--- ECMAScript(续) (JS事件;JS代码的执行顺序;设置节点属性;捕捉回车键;void 运算符;JS中的控制语句)

sql语句中的关键字有优先级,以及执行顺序吗?