每種語言,都有自己專屬的「翻譯員」和「工具箱」。
如果沒有執行環境,會發生什麼事?
如果沒有執行環境,程式就會:
無法被解讀(電腦不知道這些指令要做什麼)
無法保管資料(像 a=5 這樣的值也無法儲存)
無法進行互動(例如你打開網頁點按鈕,什麼事都不會發生)
✅ 簡單說:
沒有執行環境,程式=廢紙。
電腦只會傻傻地看著一堆無意義的文字,什麼行動也不會有。
執行環境有哪些重要特性?
當程式在運作時,執行環境會負責管理一切讓程式可以順利執行的資源和行為。
這個環境本身有幾個很重要的特性,每一個特性都直接影響程式能不能正常運作。
包含綁定(Binding)
在執行環境裡,最基本的一件事情就是:
將「名稱」和「實際的資料或功能」連在一起,這個動作叫做「綁定」。
✅ 比如說:
let name = 'Tom';
這裡的 name 這個名字,綁定到 'Tom' 這個資料上。
✅ 執行環境會記錄下這些綁定,讓你的程式在後面可以透過名字,隨時取出或操作資料。
提供互動的管道與手段(Interaction Mechanisms)
除了管理「自己內部的資料」以外,執行環境還有另一個很重要的功能:
讓程式能跟「外界」互動。
什麼叫「外界」?
使用者(比如滑鼠點擊、鍵盤輸入)
網路(比如請求伺服器資料)
檔案系統(比如讀取或儲存檔案)
其他裝置(像是印表機、相機)
✅ 舉例來說,如果你的程式想要:
讀取使用者輸入的帳號密碼
把資料送到一台遠端伺服器
顯示一張從網路下載下來的圖片
這些事情不是靠單純的程式指令就能完成,而是要透過執行環境提供的管道(API、方法)來達成。
如果沒有這些互動的手段,程式就會變成一個只能自己計算數字、什麼事也不能對外做的「孤島」。
執行環境的常見例子
瀏覽器中的執行環境
最常見、最熟悉的執行環境,就是「瀏覽器」!
當你開啟 Chrome、Firefox、Safari 的時候,瀏覽器會自動幫你建立一個 JavaScript 的執行環境。
這個環境裡面已經內建了很多功能,幫助你的程式跟使用者、網路互動。
✅ 例如瀏覽器提供的功能包括:
事件監聽器(Event Listener):讓你的程式能夠偵測使用者的操作,例如滑鼠點擊、鍵盤輸入。
網路請求(Network Request):讓你的程式可以透過 fetch 或 XMLHttpRequest 去跟伺服器拿資料。
計時器功能(Timers):讓你可以使用 setTimeout 或 setInterval,設定延遲執行或重複執行的動作。
DOM 操作(Document Object Model):讓你的程式可以動態改變網頁上的內容,例如新增一個按鈕,改變文字等等。
瀏覽器執行環境帶來的互動例子
有了這些內建功能,你的網頁程式就可以做到:
點擊按鈕,觸發一個事件(例如:彈出一個提示框)
填寫表單,把資料送到伺服器(例如:登入系統)
自動從後端載入新的資料並更新畫面(例如:看到新的貼文出現)
✅ 小提醒:
這些功能並不是「原生 JavaScript」本身就擁有的,而是瀏覽器這個執行環境額外提供的功能!
如果你單純把 JavaScript 程式碼拿到別的環境(比如 Node.js),那些像是 document、window 的東西就會消失,因為那已經不是瀏覽器了!
不同執行環境的差異
雖然「執行環境」這個概念在各種程式語言裡都是共通的,但不同的平台、不同的語言,實際提供的功能和資源卻差異很大!
為了幫助理解,我們可以從三個常見的執行環境來比較: