广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >前端 JavaScript运行原理
  • 160
分享到

前端 JavaScript运行原理

2024-04-02 19:04:59 160人浏览 独家记忆
摘要

目录1、什么是javascript引擎2、V8引擎3、运行时环境4、运行时的调用栈5、异步任务6、总结1、什么是JavaScript引擎 JavaScript引擎是一个计算机程序,它

1、什么是JavaScript引擎

JavaScript引擎是一个计算机程序,它的主要作用是JavaScript运行时将源码编译为机器码。

每个主流WEB浏览器都有自己的JavaScript引擎,它通常由web浏览器供应商开发

  • Google Chrome V8。
  • Mozilla Firefox Spider Monkey。
  • Safari Javascript Core Webkit。
  • Edge (Internet Explorer)

以前的JavaScript引擎主要在web浏览器使用,不过随着nodejs的出现就打破了这种局限。

2、V8引擎

V8包含了解析器(parser),解释器(Ignition),优化编译器(TurboFan )。

解析器(parser):用于生成抽象语法树。

解释器(Ignition):将源码转换为字节码。

优化编译器(TurboFan ):进行一些优化编译优化处理,比如内联缓存

下面是V8引擎的大体工作流程。

  • 首先 解析器 先生成一个抽象语法树。
  • 然后 解释器 根据语法树生成V8格式的字节码。
  • 优化编译器 再将字节码编译成机器码。

3、运行时环境

浏览器运行环境中,浏览器提供了Web api如:Http请求,计时器,事件等。

服务器运行环境中,nodejs提供了API。

下面是JavaScript在浏览器中运行时的架构,它包含一个内存堆、一个内存栈、一个事件循环、一个回调队列。


stack
heap
call stack
callback queue
event loop

4、运行时的调用栈

下面代码展示了JavaScript执行的调用栈变化。


function add(x, y) {
    return x + y;
}

function print(x, y) {
    console.log('x+y=',add(x, y))
}

print(1, 3)

5、异步任务

JavaScript先执行了 print 函数,然后调用Web API setTimeout() Web API存储了 setTimeout() 的回调函数,3秒后将回调函数添加到回调队列,事件循环发现调用栈为空,于是将队列里的回调函数移至调用栈执行。


function add(x, y) {
    return x + y;
}

function print(x, y) {
    setTimeout(function (){
        console.log('x+y=',add(x, y))
    }, 3000)
}

print(1, 3)

6、总结

JavaScript运行主要依靠JavaScript引擎和运行环境, 引擎 将js源码翻译成计算机所理解的机器码, 运行环境 提供了一些与计算机底层通讯的API和运行实现。

到此这篇关于前端 JavaScript运行原理的文章就介绍到这了,更多相关JavaScript运行原理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 前端 JavaScript运行原理

本文链接: https://www.lsjlt.com/news/155246.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 前端 JavaScript运行原理
    目录1、什么是JavaScript引擎2、V8引擎3、运行时环境4、运行时的调用栈5、异步任务6、总结1、什么是JavaScript引擎 JavaScript引擎是一个计算机程序,它...
    99+
    2022-11-12
  • Go语言对前端领域的入侵WebAssembly运行原理
    目录引言WebAssembly 运行原理Go WebAssembly 运行原理Go WebAssembly 初体验第一步第二步第三步第四步第五步Javascript 真的需要担心 G...
    99+
    2022-11-13
  • 前端面试运行npm run xxx发生过程原理解析
    目录引言package.json文件总结引言 事情是这样的,直接开讲 面试官:npm run xxx的时候,发生了什么?讲的越详细越好。 我(心想,简单啊): 首先,DNS 解析,将...
    99+
    2022-11-13
  • JavaScript前端构建工具原理的理解
    目录前言构建工具的前世今生YUI Tool + AntGrunt / GulpWebpack / Rollup / ParcelVite / Esbuildjs 模块化的发展史和构建...
    99+
    2022-11-13
  • web前端如何运行
    随着互联网的发展,web前端技术已经成为了广泛使用的技术之一。本文主要介绍web前端如何运行,包括前端代码的编写,代码的加载和执行,页面渲染过程等。一、前端代码的编写web前端代码通常由HTML、CSS、JavaScript等语言编写而成,...
    99+
    2023-05-14
  • JavaScript引擎的运行原理
    这篇文章主要讲解了“JavaScript引擎的运行原理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript引擎的运行原理”吧!一些名词JS引擎...
    99+
    2022-10-19
  • JavaScript中怎么判断前端应用运行环境
    JavaScript中怎么判断前端应用运行环境,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们部署在某些云平台或者Web服务器上的前端应用,既可以用PC端浏览器访问,也可以用...
    99+
    2023-06-05
  • JavaScript的运行原理是什么
    这篇文章将为大家详细讲解有关JavaScript的运行原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。扫描器源代码首先被分解成 chunk,每个 c...
    99+
    2022-10-19
  • JavaScript的运行原理怎么掌握
    这篇文章主要讲解了“JavaScript的运行原理怎么掌握”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript的运行原理怎么掌握”吧!了解Ja...
    99+
    2022-10-19
  • JavaScript运行原理的示例分析
    这篇文章主要介绍JavaScript运行原理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!JavaScript是一种基于对象的动态、弱类型脚本语言(以下简称JS),是一种解...
    99+
    2022-10-19
  • 带你了解JavaScript的运行原理
    目录浏览器内核JavaScript 引擎V8 引擎了解JavaScript 是如何运行的,以及的它的运行机制,首先,我们要了解浏览器的内核: 浏览器内核 了解过的都知道:不同的浏览器...
    99+
    2022-11-12
  • JavaScript 引擎的运行原理是什么
    这篇文章将为大家详细讲解有关JavaScript 引擎的运行原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。注意:本文主要基于 Node.js 和基...
    99+
    2022-10-19
  • JavaScript运行机制及原理是什么
    这篇文章主要介绍“JavaScript运行机制及原理是什么”,在日常操作中,相信很多人在JavaScript运行机制及原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-19
  • 前端面试之输入npm run后执行原理
    引言 在前端开发的工作当中,使用 npm run dev 的命令启动本地开发环境,是再正常不过的事了。那么,当输入完类似 npm run xxx 的命令后,究竟是如何触发各种构建工具...
    99+
    2022-11-13
  • MapReduce的运行原理
    本篇内容介绍了“MapReduce的运行原理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MapReduce是一种编程模型,用于大规模数据集...
    99+
    2023-06-02
  • React前端框架实现原理的理解
    目录vdomdsl 的编译渲染 vdom组件状态管理react 架构的演变fiber 架构总结vdom react 和 vue 都是基于 vdom 的前端框架,我们先聊下 vdom:...
    99+
    2022-11-13
  • Laravel框架运行原理
    下文介绍Laravel框架运行原理,希望对大家有帮助。 使用任何框架,如果理解该框架原理,应用起来会更加得心应手。 一、生命周期 1. 入口文件: Laravel框架所有请求入口统一进入/public/i...
    99+
    2022-10-18
  • 分析mybatis运行原理
    目录一、Mybatis基本认识1.1、动态代理1.2、反射二、Configuration对象作用三、映射器结构四、sqlsession执行流程(源码跟踪)4.1、Executor4....
    99+
    2022-11-12
  • 原生JS如何进行前后端同构
    小编给大家分享一下原生JS如何进行前后端同构,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是前后端同构明确三个概念:「后端渲...
    99+
    2022-10-19
  • 前端 富文本编辑器原理——从javascript、html、css开始入门
    文章目录 ⭐前言⭐html的contenteditable属性💖 输入的光标位置(浏览器获取selection)⭐使用Selection.toString () 返回指定的文本...
    99+
    2023-10-18
    前端 javascript html 富文本编辑器 原力计划
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作