JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱爲JavaScript引擎,爲瀏覽器的一部分,普遍用於客戶端的腳本語言。(瀏覽器須要兩個引擎: 渲染引擎和JavaScript引擎)html
當前的JavaScript引擎: V八、SquirrelFish、Rhino、SpiderMonkey、Chakra、KJS。前端
爲了取得技術優點,微軟推出了JScript,CEnvi推出ScriptEase,與JavaScript一樣可在瀏覽器上運行。爲了統一規格,由於JavaScript兼容於ECMA標準,所以也稱爲ECMAScript。後端
JavaScript包含三個部分:api
(1) ECMAScript核心,描述了該語言。瀏覽器
2011年6月,ECMAscript 5.1版發佈,而且成爲ISO國際標準。框架
2015年6月17日,ECMAScript 6發佈正式版本,即ECMAScript 2015。ECMA-262是JavaScript的官方名稱。異步
對比參考: http://www.javashuo.com/article/p-fzymsnue-h.htmlide
(2) 文檔對象模型(DOM),描述處理網頁內容的方法和接口。ui
DOM分爲HTML DOM和XML DOM兩種,它們分別定義了訪問和操做HTML/XML文檔的標準方法。.net
HTML DOM 是關於如何獲取、修改、添加或刪除 HTML 元素的標準。標準包括DOM一、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 的模型,使其輕量又高效。
==============================
瀏覽器的處理過程:
參考: http://www.javashuo.com/article/p-kmyypmxc-h.html
瀏覽器兼容性:
JS引擎是嵌入在瀏覽器內部的,不一樣的瀏覽器使用不一樣的JS引擎,對JS語言標準的實現也不同,這就致使了瀏覽器兼容性問題。
常見的JS引擎: Chrome的V八、IE的Chakra、Safari的Nitro、Flash Player的Tamarin、等等。
渲染引擎也是嵌入瀏覽器內部的,它可以將HTML/CSS/JavaScript文本及相應的資源文件轉換成圖像結果。
常見的渲染引擎: IE的Tridend、FireFox的Gecko、WebKit(Safari,Chrome,Andriod瀏覽器)、等等。