JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言。(浏览器需要两个引擎: 渲染引擎和JavaScript引擎)
当前的JavaScript引擎: V8、SquirrelFish、Rhino、SpiderMonkey、Chakra、KJS。
为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。
JavaScript包含三个部分:
(1) ECMAScript核心,描述了该语言。
2011年6月,ECMAscript 5.1版发布,并且成为ISO国际标准。
2015年6月17日,ECMAScript 6发布正式版本,即ECMAScript 2015。ECMA-262是JavaScript的官方名称。
对比参考: https://www.cnblogs.com/lovesong/p/4908871.html
(2) 文档对象模型(DOM),描述处理网页内容的方法和接口。
DOM分为HTML DOM和XML DOM两种,它们分别定义了访问和操作HTML/XML文档的标准方法。
HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。标准包括DOM1、DOM2和DOM3,参考: https://www.jianshu.com/p/5d2905584a2f
(3) 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。由于BOM没有相关标准,每个浏览器都有其自己对BOM的实现方式。
JS前端UI框架: Bootstrap、Node.Js、Angular.Js、Vue.js、React.js、AUI、Amaze UI、Frozen UI、WeUIi、SUI、MUI、Semantic UI、Foundation、UiKit、Pure。
JS前端库: jQuery、Prototype、MooTools。(AJAX: 异步 JavaScript 和 XML,在不重新加载整个网页的情况下对网页的某部分进行更新。)
JS后端框架: Node.js、Next.js、Koa、Express、Sails、Hapi。
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
==============================
浏览器的处理过程:
参考: https://blog.csdn.net/heyeqingquan/article/details/78839699
浏览器兼容性:
JS引擎是嵌入在浏览器内部的,不同的浏览器使用不同的JS引擎,对JS语言标准的实现也不一样,这就导致了浏览器兼容性问题。
常见的JS引擎: Chrome的V8、IE的Chakra、Safari的Nitro、Flash Player的Tamarin、等等。
渲染引擎也是嵌入浏览器内部的,它能够将HTML/CSS/JavaScript文本及相应的资源文件转换成图像结果。
常见的渲染引擎: IE的Tridend、FireFox的Gecko、WebKit(Safari,Chrome,Andriod浏览器)、等等。