
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
JavaScript编程开发技术是每一个web前端开发程序员都应该熟练掌握并应用的一个编程知识,而本文我们就通过案例分析来简单了解一下,JavaScript概念与线程应用。
1、什么是JavaScript?
JavaScript是一种轻量级的编程语言(脚本语言)主要应用在前端方面。在Web层面上,就是给网页添加了交互的能力。
比如点击某个按钮跳转到某个页面,点击登录按钮进行登录操作,渲染页面的数据等等。JS在前端领域是非常非常重要的一个编程语言,必须要掌握。
2、事件循环机制
在事件循环中,每进行一次循环操作称为tick,每一次tick的任务处理是比较复杂的。
关键步骤如下:
执行一个宏任务
执行过程中如果遇到微任务,就将它添加到微任务的任务队列中
宏任务执行完毕后,立即执行当前微任务队列中的所有微任务(依次执行)
当前宏任务执行完毕,开始检查渲染,然后GUI线程接管渲染
渲染完毕后,JS线程继续接管(开始下一个宏任务)
3、那什么是宏任务、微任务呢?
宏任务
宏任务(macrotask)可以理解为调用栈中的任务就是宏任务。
浏览器为了能够使得JavaScrpit内部macrotask与DOM任务能够有序的执行,会在一个macrotask执行结束后,在下一个macrotask执行开始前,对页面进行重新渲染。
macrotask主要包含:script整体代码、setTimeout、setInterval。
微任务
微任务(microtask)主要是存放一些异步任务,可以理解是在当前macrotask执行结束后立即执行的任务。所以它的响应速度相比setTimeout会更快。
microtask主要包含:Promise.then、await方法后面的代码属于.then(await相当于一个Promise)。
4、JavaScript单线程?
单线程是指当存在多个任务时候,所有任务都必须排队并且按照顺序执行。这里就会有同学问为什么不是多线程?假设是多线程,同时执行一些任务,某个任务进行了该dom的修改,而某个任务进行了该dom的删除,这样就会出现一些问题?既然大家都是同时执行的(不分先后)那么要以谁的为准呢?因为多线程是指多个任务同时执行,同时的概念是没有区分先后的。
注意:所以JavaScript一开始就被设计为单线程的工作模式。
缺点
因为是单线程,所有任务都是必须排队,按顺序执行,这样就会出现某些任务要执行很久,形成了堵塞,导致后面的任务都一直处于等待状态。为了解决堵塞的问题,JavaScript将任务的执行模式分成了两种,同步模式(Synchronous)、异步模式(Asynchronous)。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。