前端必知词汇:JavaScript(JS)引擎

简介: JavaScript引擎是一个解析JavaScript脚本的虚拟机,实现网页的动态效果,一般会附带在网页浏览器之中。JavaScript引擎的核心特征它是一种程序虚拟机。其主要用途是与用户互动,以及操作DOM,由于目前JS引擎没有引入锁机制,为了避免由于同步问题带来的冲突,JS引擎目前只支持单线程。

JavaScript(JS)引擎是一个解析JavaScript脚本的虚拟机,实现网页的动态效果,一般会附带在网页浏览器之中。JavaScript引擎的核心特征它是一种程序虚拟机。其主要用途是与用户互动,以及操作DOM,由于目前JS引擎没有引入锁机制,为了避免由于同步问题带来的冲突,JS引擎目前只支持单线程。

JS引擎是浏览器的组成部分之一,浏览器内核由一个渲染引擎和一个独立的JS引擎组成。其中渲染引擎包括HTML 解释器、CSS 解释器、图层布局计算模块、视图绘制模块。JS引擎能够被更方便的测试、重新生成或者在另一些项目中使用。JavaScript引擎能为程序员提供部分操作浏览器的功能(网络、DOM、外部事件、HTML5视频、canvas和存储)。

HTML 解释器:将 HTML 文档经过词法分析输出 DOM 树;
CSS 解释器:解析 CSS 文档,生成样式规则;
图层布局计算模块:布局计算每个对象的精确位置和大小;
视图绘制模块:进行具体节点的图像绘制,将像素渲染到屏幕上。

每个JavaScript引擎都实现了ECMAScript的一个版本,其中JavaScript是一种解释性动态脚本语言。随着ECMAScript的发展,JavaScript引擎也在不断发展。目前主流的JS引擎有SpiderMonkey 、Rhino、V8、JavaScriptCore、Chakra (JScript引擎,一个由微软为其Internet Explorer 9、Internet Explorer 10、Internet Explorer 11和Microsoft Edge等网页浏览器开发的JavaScript引擎)、KJS等等。不同的浏览器采用了不同的JavaScript引擎。

SpiderMonkey 是Mozilla使用C/C++编写的JavaScript 引擎。它被用于包括Firefox在内的多个Mozilla产品中。V8由Google在2008年开发,用C++编写,是Google Chrome的一部分,它的性能相较于之前的JS引擎有很大的提升。Rhino引擎由网景公司的诺里斯·博伊德(Norris Boyd) 开发,由Java实现。和SpiderMonkey一样,Rhino符合ECMA-262版本3。KJS被用在KHTML中,是KDE的ECMAScript/JavaScript引擎,最初由哈里·波顿开发,用于KDE项目的Konqueror网页浏览器中。

资料来源:
维基百科词条: JavaScript引擎
[1] Looper,Jen (2015-09-21). "A Guide to JavaScript Engines for Idiots". Telerik Developer Network.
[2] Shankland,Stephen (2008-09-02). "Speed test: Google Chrome beats Firefox,IE,Safari". CNET Business Tech. CBS Interactive.
[3] "Big browser comparison test: Internet Explorer vs. Firefox,Opera,Safari and Chrome". PC Games Hardware. Computec Media AG.
[4] "Lifehacker Speed Tests: Safari 4,Chrome 2". Lifehacker.

目录
相关文章
|
5天前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
17 0
|
1天前
|
前端开发 JavaScript 安全
JavaScript前端开发技术
JavaScript(简称JS)是一种广泛使用的脚本语言,特别在前端开发领域,它几乎成为了网页开发的标配。从简单的表单验证到复杂的单页应用(SPA),JavaScript都扮演着不可或缺的角色。
10 3
|
5天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
38 0
|
5天前
|
前端开发 JavaScript 程序员
【从前端入门到全栈】Node.js 之核心概念
【从前端入门到全栈】Node.js 之核心概念
|
5天前
|
Web App开发 JavaScript 前端开发
Node.js:JavaScript世界的全能工具
Node.js:JavaScript世界的全能工具
|
5天前
|
Web App开发 JavaScript 前端开发
前端Node.js面试题
前端Node.js面试题
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
83 2
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
102 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
76 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
66 4