對于很多初學的小伙伴聽到JavaScript內置對象、BOM、DOM、WEB API等關鍵詞基本上都是迷糊,不是很明白他們之間的關系,以及他們是如果建立聯系的。雖然我們現在小伙伴在學VUE,React等框架能簡化我們的操作,但是遇到一些基礎的問題還是要看基礎,能為我們實際中解決一些問題提供更多的思路。接下來我們看一下JavaScript內置對象、BOM、DOM、WEB API都有包括哪些東西?
一、JavaScript內置對象,也是ECMAScript(ECMAScript是一種由Ecma國際,前身為歐洲計算機制造商協會—European Computer Manufacturers Association,通過ECMA-262標準化的腳本程序設計語言)的JavaScript實現,我們看一下JavaScript都有哪些內容:

二、Web API是WEB標準的實現,而WEB API又有JavaScript實現(具體的JavaScript對象類封裝),當然WEB API主要有JavaScript實現,但也可能有例外,例如常用的WEB RTC在安卓平臺有java實現,下面我們看一下WEB API都有哪些:

由JavaScript內置對象與WEB API的實現構成了WEB的全部內容,很多小伙伴有可能就不明白:都說了是web的全部內容怎么還是沒有提到BOM和DOM?這里需要說明一下,首先我們說的是全部內容,并沒有說全部實現,另外仔細觀察上面WEB API圖例就發現DOM屬于WEB API的一部分。
三、BOM(Browser Object Model),即瀏覽器對象模型,可以理解為一個JavaScript運行的容器、環境,一切的JavaScript實現都在BOM里面,包括JavaScript內置對象,WEB API 的JavaScript實現等,首先看一下BOM都包括那些:

從上面我們知道Window作為BOM的最頂層對象,這是一個特殊的JavaScript對象,可以叫做全局對象,也叫宿主對象,它及其所有屬性都可以在程序的任何地方訪問。window對象除自身實現了一些方法例如window.open()等,JavaScript內置對象,WEB API的JavaScript實現包含于Window對象,這也是為什么叫做宿主對象的原因;而對于全局對象的解釋,第一是最頂層的瀏覽器JavaScript對象,第二也是全局唯一的,第三我們不需要引入可以直接使用。

比如上面的代碼,我們平日里面使用都是直接parseInt()函數NaN屬性,console.log()等。
四、DOM即文檔對象模型,是W3C制定的標準接口規范,是一種處理HTML和XML文件的標準API。我們從圖三中可以看到DOM的實現根是document對象,同時又是全局對象Window的一個屬性,也是一個全局屬性,常用的比如document. getElementById()。
寫到最后,小伙伴們應該了解了他們的關系以及聯系,我們接下來章節具體的講解JavaScript的根本Object,包括JavaScript內置對象,BOM,DOM以及WEB API等內容。