標籤:javascript;前端開發;指令碼語言;應用環境
JavaScript的應用環境,主要是宿主環境(host environment)和運行期環境構成。其中,宿主環境是指外殼程式(Shell)和Web瀏覽器等,而運行期環境則是由JavaScript引擎內建的。
宿主環境
宿主環境是為了隔離代碼、語言與具體的平台而提出的一種設計。一方面我們不能讓瀏覽器擁有一個巨大無比的運行期環境(虛擬機器就是擁有特別大的運行期環境的一個平台),另一方面伺服器端又需要較強大的環境,由此JavaScript就被設計為“宿主環境”的語言。
ECMAScript規範沒有對宿主環境提出明確的定義。即沒有對它提出標準的輸入(stdin)或者輸出(stdout)到哪一個具體的對象中。後來,RWC在webAPIs規範中首先提出了“需要一個Window對象”的瀏覽器環境。由此意味著在RWC或者瀏覽器端,是以window對象及其中的Document對象來提供輸入輸出。但“RWC規範下的宿主環境”並不等於“JavaScript規範下的宿主環境”
方法 |
含義 |
|
Alter(sMessage) |
顯示一個訊息文本(字串),並等待使用者一次響應。調用者將忽略響應的返回資訊 |
|
Write(sText,...) |
輸出一段文本,多個參數將被串連成單個字串文本。 |
|
WriteIn(sText,...) |
(同write)輸出一段文本,多個參數被串連成單個字串文本,並在文本末尾追加一個分行符號(\n) |
備忘:write()與writeIn在瀏覽器中是Document對象的方法。
外殼程式
外殼程式是宿主的一種。
運行期環境
不同的書對其定義的解釋也不一致:
例如《JavaScript權威指南》裡,它由JavaScript核心(core)和用戶端(client)JavaScript兩部分來組成;
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/92/82/wKiom1kAOluyvuDBAAAYTWoEV3o846.png-wh_500x0-wm_3-wmp_4-s_1160389310.png" title="20170426134726.png" alt="wKiom1kAOluyvuDBAAAYTWoEV3o846.png-wh_50" />
而《JavaScript進階程式設計》中,它又是由核心ECMAscript、文件物件模型(DOM)、瀏覽器物件模型(BOM)三部分來組成的。
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/92/82/wKiom1kAOniCGtSgAAAqWkiPkrQ748.png-wh_500x0-wm_3-wmp_4-s_2708317499.png" title="20170426135000.png" alt="wKiom1kAOniCGtSgAAAqWkiPkrQ748.png-wh_50" />
在初始狀態下的運行期環境主要包括:
一個對宿主的約定
一個引擎核心
一組對象和API
一些其他的規範
常見的JavaScript引擎
引擎 |
應用 |
語言 |
備忘 |
SpiderMonkey |
Mozilla |
C |
|
JavaScriptCore |
Safari |
C++ |
基於KDE發布的KJS,由Apple公司支援 |
Rhino |
Java |
Java |
主要應用於IBM、Sun等的Java平台 |
JScript |
Windows |
|
Windows環境,以及IE |
Narcissus |
|
JavaScript |
備忘* |
備忘*:Brendan Eich為驗證JavaScript語言的自我實現能力而寫的一套代碼,被稱為“JS implemented in JS”
本文出自 “陽光羅諾” 部落格,請務必保留此出處http://10479756.blog.51cto.com/10469756/1919595
JavaScript學習筆記————JavaScript的應用環境