前端必知词汇: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.

目录
相关文章
|
19天前
|
前端开发 JavaScript 网络协议
前端最常见的JS面试题大全
【4月更文挑战第3天】前端最常见的JS面试题大全
41 5
|
24天前
|
机器学习/深度学习 人工智能 JavaScript
js和JavaScript
js和JavaScript
21 4
|
1月前
|
JavaScript 前端开发 Java
纯前端JS实现人脸识别眨眨眼张张嘴案例
纯前端JS实现人脸识别眨眨眼张张嘴案例
48 0
|
2天前
|
JavaScript 前端开发
js开发:请解释this关键字在JavaScript中的用法。
【4月更文挑战第23天】JavaScript的this关键字根据执行环境指向不同对象:全局中指向全局对象(如window),普通函数中默认指向全局对象,作为方法调用时指向调用对象;构造函数中指向新实例,箭头函数继承所在上下文的this。可通过call、apply、bind方法显式改变this指向。
7 1
|
22天前
|
人工智能 前端开发 JavaScript
【前端设计】HTML+CSS+JavaScript基本特性
【前端设计】HTML+CSS+JavaScript基本特性
|
23天前
|
JavaScript 前端开发
JavaScript生成的随机数随机字符串JS生成的随机数随机字符串
JavaScript生成的随机数随机字符串JS生成的随机数随机字符串
14 1
|
30天前
|
JavaScript 前端开发 算法
深入探讨前端框架Vue.js中的虚拟DOM机制
本文将深入探讨前端框架Vue.js中的虚拟DOM机制,分析其原理、优势以及在实际开发中的应用场景,帮助读者更好地理解Vue.js框架的核心特性。
|
1月前
|
JavaScript 前端开发
js开发:请解释什么是模块化(modularization),并说明如何在JavaScript中实现模块化。
模块化将复杂系统拆分为松散耦合的模块,提高代码可读性、可维护性、可复用性和可扩展性。JavaScript模块化历经CommonJS(Node.js中常见,使用`require()`和`module.exports`)、AMD(RequireJS,异步加载,`define()`和`require()`)和ES6 Modules(官方标准,`import`和`export`)三个阶段。打包工具如Webpack、Rollup处理兼容性问题,使模块化代码能在各种环境中运行。
|
1月前
|
JSON JavaScript 前端开发
Node.js:前端开发的后端利器
Node.js作为一种运行在服务器端的JavaScript环境,为前端开发者打开了后端开发的大门。它以其高效的事件驱动、非阻塞I/O模型以及强大的npm生态,使得前端开发者能够轻松构建服务器端应用,实现前后端的全栈开发。本文将探讨Node.js的核心优势、应用场景以及在前端开发中的重要性。
|
1月前
|
前端开发 JavaScript 数据可视化
JavaScript:前端开发的灵魂与动力
JavaScript(JS)作为前端开发的核心语言,赋予了网页交互性和动态性。通过JS,开发者可以实现复杂的用户交互、数据操作以及动画效果,为用户带来丰富而流畅的网页体验。本文将介绍JS的基本概念、应用场景以及在前端开发中的重要性。