最詳細的JavaScript高級教程(二)JavaScript和ECMAScript

JS和ES

每一個學習JS的同學都聽說過ES5,ES6,但是,是否所有的同學都清除的知道他們之間的關係呢?我們通常認爲這兩個是一個東西,事實上他們的關係如下:

從上面的圖中我們清除的看到,他們不是並列關係,而是包含關係,那麼下面就分別介紹一下

ECMAScript

核心,它本身並沒有輸入和輸出的定義,這門語言和瀏覽器也沒有依賴關係。瀏覽器只是提供了語言的宿主環境,同時提供了這門語言的實現以及一些本地化的擴展。

既然瀏覽器是宿主環境,那就還存在別的宿主環境:比如Node,比如Adobe Flash

ECMAScript規定了這門語言的:

  • 語法
  • 類型
  • 語句
  • 關鍵字
  • 保留字
  • 操作符
  • 對象

這就說明,我們也可以寫一門語言作爲ECMAScript的實現,就像JavaScript一樣,我們只需要:

  • 支持ECMAScript描述的所有類型 值 對象 屬性 函數 以及程序語法和語義
  • 支持Unicode

注意:

  • JSON對象是原生ECMAScript支持的

DOM 文檔對象模型

在瀏覽器中,基於ECMAScript實現的DOM已經成爲了JS這門語言的重要組成部分
DOM就是通過HTML描述的,頁面元素的樹狀結構對象,就是下面這個東西:
在這裏插入圖片描述
我們需要注意這麼幾個概念:

  • DOM是一種標準,這種標準規定了如何通過HTML來映射對象,以簡化對於HTML中表達的各個節點的操作
  • ECMAScript和DOM的關係是:瀏覽器中用符合ECMAScript標準的語言實現了DOM標準
  • 可以使用別的語言實現DOM

DOM規定了下面這些東西:

  • HTML映射對象,對象的操作
  • 鼠標,用戶事件等
  • CSS樣式接口
  • 遍歷文檔樹的接口

BOM 瀏覽器對象模型

DOM對象是頁面中,用HTML編寫的元素的映射,而BOM對象是瀏覽器對象的映射,通過BOM,我們可以且不限於可以做下面的事情:

  • 彈出新的窗口
  • 移動 縮放 關閉瀏覽器
  • 支持cookies
  • 獲得 window 或者 navigator對象

目前BOM的標準由HTML5纔有標準可以遵循,所以之前各個瀏覽器中對於BOM功能的支持都不盡相同,有了HTML5,BOM在未來的某一天會真正的統一。

ES6

  • ES6已經在2015年6月正式發佈
  • 各個網站對於ES6的語法支持程度不一樣
  • 需要查詢宿主環境對於ES6的支持可以使用工具
  • 需要查詢瀏覽器對於ES6的支持可以訪問網頁
  • 如果不想面對不同宿主環境對於ES6兼容性的問題,可以使用ES6轉ES5轉換器 Babel 或 Traceur
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章