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两部分来组成;
而《JavaScript高级程序设计》中,它又是由核心ECMAscript、文档对象模型(DOM)、浏览器对象模型(BOM)三部分来组成的。
在初始状态下的运行期环境主要包括:
- 一个对宿主的约定
- 一个引擎内核
- 一组对象和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”
时间: 2024-10-17 12:21:01