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”
本文出自 “阳光罗诺” 博客,请务必保留此出处http://10479756.blog.51cto.com/10469756/1919595
JavaScript学习笔记————JavaScript的应用环境
原文地址:http://10479756.blog.51cto.com/10469756/1919595