JS引擎、浏览器内核、ECMAScript 和 JavaScript

几个名词经常出现又总是混淆,找文档标准的时候不知道以哪个为准,还是特意区分下吧

1. JS引擎

  • JS引擎是专门处理JavaScript脚本的虚拟机,一般会附带在网页浏览器中
  • 即JS引擎负责处理JS脚本

2. 浏览器内核

  • 浏览器内核又叫渲染引擎,或排版引擎。负责获取标记式内容(如HTML、XML及图像文件等)、整理信息(如CSS及XSL等),并将排班后的内容输出至显示器或打印机
  • 即:浏览器内核负责渲染展示,有时也是图像引擎和JS引擎的组合
    一个典型的浏览器有一个图形引擎和一个独立的JavaScript引擎。

3. ECMAScript 和 JavaScript

  • ECMAScript是一种由Ecma国际通过ECMA-262标准化的脚本程序设计语言。往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。
  • 完整的JavaScript包括:
    • ECMAScript,描述了该语言的语法和基本对象
    • 文档对象模型(DOM),描述处理网页内容的方法和接口,W3C定义
    • 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口
JS引擎 浏览器 语言 备注
V8 Chrome C++ Google丹麦开发 ,开源
JavaScriptCore Safari C++ 开源
Chakra(JScript 引擎) IE
Chakra(JavaScript引擎) Microsoft Edge
SpiderMonkey Firefox 第一款JavaScript引擎,早期用于Netscape Navigator
Rhino JAVA 由Mozilla基金会管理,开源
KJS Konqueror KDE的ECMAScript/JavaScript引擎,最初由哈里·波顿开发,用于KDE项目的Konqueror网页浏览器中
  • 以Chorme为例, JS引擎为V8引擎,内核为Blink(Blink中包含V8)
  • V8引擎用于处理JavaScript,而JavaScript是ECMAScript的扩展和实现
  • JS中的ECMAScript由ECMA国际指定标准, DOM则由W3C制定标准, BOM是各个浏览器厂家的按照默认自主实现

你可能感兴趣的:(JS引擎、浏览器内核、ECMAScript 和 JavaScript)