当前位置: 首页 > news >正文

Node.js 入门教程 6 V8 JavaScript 引擎

Node.js 入门教程

Node.js官方入门教程

Node.js中文网

本文仅用于学习记录,不存在任何商业用途,如侵删

文章目录

      • Node.js 入门教程
      • 6 V8 JavaScript 引擎
        • 6.1 其他 JS 引擎
        • 6.2 追求性能
        • 6.3 编译

6 V8 JavaScript 引擎

V8 是驱动 Google Chrome 的 JavaScript 引擎的名称。

这是在使用 Chrome 浏览时获取我们的 JavaScript 并执行它的东西。

V8 提供了 JavaScript 执行的运行时环境。 DOM 和其他 Web 平台 API 由浏览器提供。

很酷的是 JavaScript 引擎独立于它所在的浏览器。 这个关键特性促成了 Node.js 的兴起。 早在 2009 年,V8 就被选为驱动 Node.js 的引擎,随着 Node.js 的流行,V8 成为现在为大量使用 JavaScript 编写的服务器端代码提供驱动的引擎。

Node.js 生态系统非常庞大,这要归功于 V8,它还支持桌面应用程序,例如 Electron 等项目。【Cool】

6.1 其他 JS 引擎

其他浏览器有自己的 JavaScript 引擎:

  • Firefox 具有 SpiderMonkey
  • Safari 具有 JavaScriptCore(也称为 Nitro)
  • Edge 最初基于 Chakra,但最近使用 Chromium 和 V8 引擎重建。【貌似已经完成了】

还有许多其他的存在。

所有这些引擎都实现了 ECMA ES-262 标准,也称为 ECMAScript(JavaScript 使用的标准)。

6.2 追求性能

V8 是用 C++ 编写的,并且在不断改进。

它是可移植的,可以在 Mac、Windows、Linux 和其他几个系统上运行。

在此 V8 介绍中,我们将忽略 V8 的实现细节:它们可以在更权威的网站上找到(例如 V8 官方网站),

在这里插入图片描述

它们经常会从根本上随着时间的推移而变化。

V8 一直在发展,就像周围的其他 JavaScript 引擎一样,以加速 Web 和 Node.js 生态系统。

在 web 上,性能竞赛已经持续了多年,我们(作为用户和开发人员)从这场竞争中受益匪浅,因为我们年复一年地获得更快、更优化的机器。

6.3 编译

JavaScript 通常被认为是一门解释型语言,

但是现代的 JavaScript 引擎不再只是解释 JavaScript,它们会编译它。【即时编译】

这从 2009 年开始发生,当时 SpiderMonkey JavaScript 编译器被添加到 Firefox 3.5 中,所有人都遵循这个想法。

JavaScript 由 V8 在内部使用即时 (JIT) 编译以加快执行速度。

这可能看起来有悖常理,但自从 2004 年 Google 地图推出以来,JavaScript 已经从一门通常执行几十行代码的语言发展为在浏览器中运行数千到数十万行代码的完整应用程序。

我们的应用程序现在可以在浏览器中运行数小时,而不仅仅是一些表单验证规则或简单的脚本。【以前就是哈哈】

在这个新世界中,编译 JavaScript 非常有意义,因为虽然准备好 JavaScript 可能需要更多时间,但是一旦完成,它将比纯粹的解释型代码性能更高。【厉害了】

相关文章:

  • lombok详解
  • Keras深度学习实战(38)——图像字幕生成
  • 含电热联合系统的微电网运行优化附Matlab代码
  • SecXOps 核心技术能力划分
  • PyTorch学习笔记-TensorBoard
  • 牛顿法与拟牛顿法摘记
  • Collectors.collectingAndThen()
  • verilog练习——组合逻辑
  • 【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)
  • Python:每日一题之顺子日期
  • 简单的Hystrix熔断
  • 036-JList列表控件使用案例讲解
  • 【网页设计】期末大作业html+css+js(在线鲜花盆栽网站)
  • Python用PyMC3实现贝叶斯线性回归模型
  • VuePress构建一个文档管理网站
  • 【看表情包学Linux】冯诺依曼架构 | 理解操作系统 | 基于 Pintos 实现新的用户级程序的系统调用
  • 单链表——简单的增删查改
  • 电子技术——MOS放大器基础
  • 嵌入式 学习
  • 【Linux】vim编辑器的使用
  • 强化学习笔记:基于策略的学习之策略迭代(python实现)
  • 1. Spring 基础入门
  • springboot 分布式全局唯一id的生成-雪花算法snowflake
  • 如何使用VMware虚拟机(带你快速了解)
  • Python---学生管理系统(pyinstaller)
  • [学习slam]用ORB SLAM2跑自己的数据集 使用图片序列或摄像头或视频 实践篇
  • java get 传符号无法接收_JAVA垃圾收集
  • 【学习SLAM】c++时间戳 获取与转换
  • GNSS伪距单点定位
  • sql count为空时显示0_中级数据分析-SQL汇总分析
  • 【学习SLAM】视觉SLAM笔记之Frame 类
  • 征服者蒙面侠c380更新升级_LOL9.3&9.4版本改动浅析:征服者搅动风云 暴击回调上线...
  • GNSS多普勒测速
  • 【github】ubuntu下上传本地代码到github
  • 可以解压日文的软件_提高开发效率,不能不知道的Mac用户软件工程师效率化工具10选...