精緻從細節作起。前端的工做也有一段時間了,大大小小的前端框架都有接觸過,越是深刻學習越是感受以前的學習過於粗糙,基礎不夠紮實,因而準備近期把JavaScript的基礎知識點梳理一下,查缺補漏,作一名精緻的JavaScripter。
本系列文章做爲《JavaScript高級程序設計》(第3版)和《ECMAScript6入門》(第3版)的學習筆記,ES6相關知識點會有單獨標識。前端若有錯誤,歡迎指出;若有疑問的地方,請在文章下方提問。node
一個完整的JavaScript實現由下列三個部分組成:git
ECMAScript 是一門語言標準,JavaScript 即是在這基礎上構建的相對完善的腳本語言。es6
咱們常見的 Web 瀏覽器只是 ECMAScript 實現的運行環境之一,運行環境不只提供基本的 ECMAScript 實現,同時也會提供該語言的擴展——DOM,DOM 則利用 ECMAScript 的語法實現具體功能。其它宿主環境還有 Node 和 Adobe Flash。github
ECMAScript 由下列部分組成:segmentfault
ECMAScript、ES6 是什麼意思?1996年,JavaScript 的創造者 Netscape 公司將 ECMAScript 提交給標準化組織 ECMA。次年,ECMA 發佈262號標準文件(ECMA-262),並將這種語言稱爲 ECMAScript,這個版本就是1.0。瀏覽器
2011年,ECMAScript 5.1版本發佈後,就開始定製6.0版本,ES6泛指5.1版本後 JavaScript 的下一代標準,涵蓋了ECMAScript201五、ECMAScript201六、ECMAScript2017等等。前端框架
ECMAScript 標準會在每一年的6月發佈一次,做爲當年的正式版本,ECMAScript2015 即是2015年發佈的ECMAScript正式版本。babel
各大瀏覽器對 ES6 的支持狀況:ES6瀏覽器支持狀況;cookie
Nodejs 對 ES6 的支持狀況:Nodejs支持狀況。
在開發過程當中咱們須要用到 ES6 的新特性,但又須要考慮瀏覽器的兼容性,這時候咱們就可使用 Babel 來幫助咱們;使用 Babel 能夠把 ES6 的代碼轉成 ES5 的代碼,從而讓咱們的代碼能夠在不支持 ES6 的環境運行;
babel快速入門手冊:點擊查看。
文檔對象模型(DOM,Document Object Model)是處理 HTML 或 XML 文檔的API;
DOM把整個頁面映射爲多層節點結構,HTML 或 XML 頁面中的每一個組成部分都是某種類型的節點,這些節點又包含着不一樣類型的數據。下面是一個 HTML 頁面節點結構的實例:
DOM 不是 JavaScript 獨有的,許多其餘語言都實現了它。在 Web 瀏覽器中基於 ECMAScript 實現的 DOM 已經成爲 JavaScript 的重要組成部分。
1998年10月,DOM Level1 成爲了 W3C 的推薦標準,爲 DOM 的跨平臺開發奠基基礎。
DOM Level1 由兩個模塊組成:DOM Core 和 DOM HTML 。其中,前者提供了基於 XML 的文檔的結構圖,以便訪問和操做文檔的任意部分;後者添加了一些 HTML 專用的對象和方法,從而擴展了 DOM Core。
DOM Level2 在 DOM Level1 的基礎上引入了下列模塊,也給出了衆多新類型和新接口的定義:
DOM Level3 進一步擴展了DOM,引入了以統一的方式載入和保持文檔的方法,以及驗證文檔的方法;DOM Core 開始支持 XML 1.0 規範。
DOM Level4 定義了基於事件和節點的平臺中立(platform-neutral)模型,增長了 Mutation Observers 做爲 Mutation 事件的替換。
不一樣瀏覽器對於 DOM 的支持程度,能夠在 caniuse - 點擊訪問 進行查詢。
從根本上講,BOM 只處理瀏覽器窗口和框架,但人們習慣把全部針對瀏覽器的 JavaScript 擴展算做 BOM 的一部分,BOM 由下列部分組成:
因爲沒有 BOM 標準能夠遵循,全部每一個瀏覽器都有本身的實現,固然也存在一些默認的標準;如今有了 HTML5 ,BOM 有望朝着兼容性愈來愈高的方向發展。