iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0
Modern Web

就是要搞懂 JavaScript 啦!系列 第 4

Day04 宿主 or 原生?原來你不是我們家的孩子!

  • 分享至 

  • xImage
  •  

宿主環境

上一篇提到 JS 的執行方式,這裡就順勢來說說,JS 執行時需要依賴的宿主環境(host environment)。

系統級的語言,例如 C 語言可以開發系統和製造環境,不過 JavaScript 無法做到這點,需要寄生在某個具體的環境中才能夠工作,這樣的環境稱為「宿主環境(host environment)」。

宿主環境是直譯型語言的特性之一,編譯型語言能夠直接產生用機器語言寫成的檔案,而不需要依賴外部環境,JS 恰好位於編譯與直譯之間,屬於即時編譯型。


宿主物件

宿主環境是由殼層(shell)創造的,常見的宿主環境如瀏覽器和桌面應用程式等,而宿主環境會提供宿主物件(Host / Host Object),作為與內部程序互動的接口。

殼層(shell)又稱外殼程式,是使用者和程式互動的介面軟體。

比如瀏覽器的 window,以及 Node.js 自己的 global,以上兩者都是宿主物件,而非 JS 原生的內容。一些常見的方法,如 consolesetTimeout 等,也都是宿主物件 window 的屬性。

JS 程式碼中常見,但不屬於 JS 核心程序的部分

BOM

  • 中文為瀏覽器物件模型(Browser Object Model)
  • BOM 是屬於瀏覽器的內容,也就是 JS 操作瀏覽器的接口(BOM 的最頂層就是 JS 經常互動的 window 物件)。
  • 由各瀏覽器廠商規範與維護,沒有統一的標準。

DOM

  • 中文稱文件物件模型(Document Object Model)
  • DOM 則是由 HTML 文件構成的 ,並提供了操作 HTML 的 API。
  • 屬於 W3C 制定的網路標準之一,擁有世界通用的規範。

原生物件

與宿主物件相對,屬於 JS 自己提供的內容則稱為原生物件(Native object),也稱作本地物件(Local object)。

原生物件當中又包含內建物件(Built-in object),這部分後文會再說明。


自定義物件

除此之外,JS 也容許使用 new 關鍵字創造自定義物件(Custom Object),以擴充能夠執行的功能。


參考資料


上一篇
Day03 編譯時到底做了什麼?
下一篇
Day05 變數──值的容器
系列文
就是要搞懂 JavaScript 啦!73
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言