作一名精緻的JavaScripter 01:JavaScript簡介

精緻從細節作起。

前端的工做也有一段時間了,大大小小的前端框架都有接觸過,越是深刻學習越是感受以前的學習過於粗糙,基礎不夠紮實,因而準備近期把JavaScript的基礎知識點梳理一下,查缺補漏,作一名精緻的JavaScripter。
本系列文章做爲《JavaScript高級程序設計》(第3版)和《ECMAScript6入門》(第3版)的學習筆記,ES6相關知識點會有單獨標識。前端

若有錯誤,歡迎指出;若有疑問的地方,請在文章下方提問。node

一個完整的JavaScript實現由下列三個部分組成:git

  • 核心(ECMAScript)
  • 文檔對象模型(DOM)
  • 瀏覽器對象模型(BOM)

JavaScript的組成

ECMAScript

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 的支持狀況:ES6瀏覽器支持狀況cookie

Nodejs 對 ES6 的支持狀況:Nodejs支持狀況

Babel 轉碼

在開發過程當中咱們須要用到 ES6 的新特性,但又須要考慮瀏覽器的兼容性,這時候咱們就可使用 Babel 來幫助咱們;使用 Babel 能夠把 ES6 的代碼轉成 ES5 的代碼,從而讓咱們的代碼能夠在不支持 ES6 的環境運行;

babel快速入門手冊:點擊查看

文檔對象模型(DOM)

文檔對象模型(DOM,Document Object Model)是處理 HTML 或 XML 文檔的API;

DOM把整個頁面映射爲多層節點結構,HTML 或 XML 頁面中的每一個組成部分都是某種類型的節點,這些節點又包含着不一樣類型的數據。下面是一個 HTML 頁面節點結構的實例:

圖片描述

DOM 不是 JavaScript 獨有的,許多其餘語言都實現了它。在 Web 瀏覽器中基於 ECMAScript 實現的 DOM 已經成爲 JavaScript 的重要組成部分。

DOM Level

1998年10月,DOM Level1 成爲了 W3C 的推薦標準,爲 DOM 的跨平臺開發奠基基礎。

DOM Level1 由兩個模塊組成:DOM Core 和 DOM HTML 。其中,前者提供了基於 XML 的文檔的結構圖,以便訪問和操做文檔的任意部分;後者添加了一些 HTML 專用的對象和方法,從而擴展了 DOM Core。

DOM Level2 在 DOM Level1 的基礎上引入了下列模塊,也給出了衆多新類型和新接口的定義:

  • DOM 視圖:定義了跟蹤文檔視圖的接口;
  • DOM 事件:定義了事件和事件處理的接口;
  • DOM 樣式:定義了基於 CSS 爲元素應用樣式的接口;
  • DOM 遍歷和範圍:定義了遍歷和操做文檔樹的接口。

DOM Level3 進一步擴展了DOM,引入了以統一的方式載入和保持文檔的方法,以及驗證文檔的方法;DOM Core 開始支持 XML 1.0 規範。

DOM Level4 定義了基於事件和節點的平臺中立(platform-neutral)模型,增長了 Mutation Observers 做爲 Mutation 事件的替換。

不一樣瀏覽器對於 DOM 的支持程度,能夠在 caniuse - 點擊訪問 進行查詢。

瀏覽器對象模型(BOM)

從根本上講,BOM 只處理瀏覽器窗口和框架,但人們習慣把全部針對瀏覽器的 JavaScript 擴展算做 BOM 的一部分,BOM 由下列部分組成:

  • 彈出新瀏覽器窗口的功能;
  • 移動、縮放和關閉瀏覽器的功能;
  • navigator 、 location 、 screen 、 XMLHttpRequest(ActiveXObject)對象;
  • 對 cookies 的支持;

因爲沒有 BOM 標準能夠遵循,全部每一個瀏覽器都有本身的實現,固然也存在一些默認的標準;如今有了 HTML5 ,BOM 有望朝着兼容性愈來愈高的方向發展。

相關文章
相關標籤/搜索