Java教程

JavaScript执行机制解析

本文主要是介绍JavaScript执行机制解析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

想要搞懂JavaScript执行机制,需要清楚下面这些知识:(以浏览器环境为例,与Node环境不同)

  • 进程与线程的概念
  • 浏览器原理
  • 事件循环(Event-Loop),任务队列(同步任务,异步任务,微任务,宏任务)

JS为什么是单线程?

JavaScript从它诞生之初就是作为浏览器的脚本语言,主要用来处理用户交互以及操作DOM,这就决定了它只能是单线程的,否则会带来非常复杂的同步问题。

举个例子: 如果JS是多线程的,其中一个线程要修改一个DOM元素,另外一个线程想要删除这个DOM元素,这时候浏览器就不知道该听谁的。所以为了避免复杂性,从一诞生,JavaScript就被设计成单线程。

为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。所以,这个新标准并没有改变JavaScript单线程的本质

浏览器原理

浏览器想必都不陌生,并且浏览器是多进程的。

浏览器组成部分

  • 用户界面:包括地址栏,前进/后退/刷新/书签
这篇关于JavaScript执行机制解析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!