美文网首页
JS 运行机制(Event Loop)硬核干货分析报告

JS 运行机制(Event Loop)硬核干货分析报告

作者: you的日常 | 来源:发表于2021-03-15 15:07 被阅读0次

    1. JS 运行机制(前后端)

    1.1 单线程

    文章的开始,聊下 JS 的历史,下图 1.1.1 的大神叫 Brendan Eich(布兰登 · 艾奇),是 JS 的创作者。

    在这里插入图片描述

    图 1.1.1

    很难想象,这门“10 天发明出来的编程语言”,在很多年后却成为 Web 开发的必备技术。

    JS 的设计,最初是为了解决表单验证的问题,表单验证避免不了 DOM 的操作,然而,多线程的 DOM 操作,将带来无法估量的复杂度。再者,作者只有少量的时间,设计这个语言的工作纯粹是为了完成任务。

    最终,各种原因,JS 以单线程面世,直到现在,即使前端 JS 支持了 Web Worker 多线程,在 worker 线程中还是不能操作 DOM;在后端,Node.js 直到 v10.5.0 才支持了多线程。很多人对 JS 的质疑也在于此,为什么 JS 的单线程,却能带来不错的性能?读完这篇文章你会知道答案。

    在前端,Web 端的所有应用,几乎都用 JS,特别是现在的 MVVM 框架盛行,最大程度上促进了前端工程化,前端的项目结构可以一定程度上媲美后端,比如拥有完整的 MVC 结构等。

    在后端,Node.js 的兴起带开启 JS 开发后端程序的新姿势,BAT 的后端应用不缺乏 Node.js 的身影,各种框架层出不穷。

    接下来,我们逐步来回答 JS 的单线程性能问题,首先从它特殊的运行机制讲起。

    来看一张图,如下图 1.1.2 所示。

    在这里插入图片描述

    图 1.1.2

    如上图所示,JS 的运行模型分三部分。

    相关文章

      网友评论

          本文标题:JS 运行机制(Event Loop)硬核干货分析报告

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