JavaScript学习笔记————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两部分来组成;

而《JavaScript高级程序设计》中,它又是由核心ECMAscript文档对象模型(DOM)浏览器对象模型(BOM)三部分来组成的。

在初始状态下的运行期环境主要包括:

  1. 一个对宿主的约定
  2. 一个引擎内核
  3. 一组对象和API
  4. 一些其他的规范

常见的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

JavaScript学习笔记————JavaScript的应用环境的相关文章

[JavaScript] 学习笔记-JavaScript基础教程

1.JavaScript介绍 1)JavaScript是互联网上最流行的脚本语言,这门语言可用于Web和HTML,更可广泛用于服务器.pc端.移动端.JavaScript是一种轻量级的编程语言,插入HTML后,可由所有的浏览器执行 2)HTML中的脚本必须位于<script></script>标签之间:脚本可被放置于HTML页面的<head>和<body>部分中(通常把脚本放在<head>标签中,以不干扰页面的内容) 3)在HTML中,不限制脚本

JavaScript学习笔记——javascript流程控制

javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分支结构.条件结构) 根据给定的条件有选择的执行形相应的语句. (1) if else if else 1.单路分支 //条件可以是表达式也可以是任何的数据类型 //大括号会把他里面的代码当作一个整体来运行,如果只有一条语句,可以省略大括号 if(条件){ 条件成立执行的语句 } 2.双路分支 if(

Javascript 学习笔记 2: 标识语句

可以在任何语句声明之前使用唯一标识(identifier)和冒号(:)用来标记该语句: identifier: statement 这样,你可以在程序的任何其他地方通过标识来使用这个语句.即使在语句内部也可以使用该语句的标识(例如:循环语句和条件语句).当在一个循环语句前添加一个标识,你可以在语句内部通过break 标识来退出当前循环,也可以通过continue标识来继续执行该语句.例如: mainloop: while(token != null) { // Code omitted... c

javascript学习笔记---ECMAScript-判断变量类型

判断类型之前,先要清楚有哪些类型. (理理思路:程序由数据和方法构成,数据由简单数据和复杂数据构成) 即类型有: 数据(简单数据:boolean,string,num,undefined,null.复杂数据:object), 方法(function) 万能的typeof,神一样的方法 typeof(1);// num typeof("hello");// string   typeof(false);// boolean var vFlag; typeof(vFlag);// unde

javascript学习笔记---ECMAScript语法(引用类型)

引用类型通常叫做类(class). 本教程会讨论大量的 ECMAScript 预定义引用类型. 引用类型 引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象. 本教程会讨论大量的 ECMAScript 预定义引用类型. 从现在起,将重点讨论与已经讨论过的原始类型紧密相关的引用类型. 注意:从传统意义上来说,ECMAScript 并不真正具有类.事实上,除了说明不存在类,在 ECMA-262 中根本没有出现"类"这个词.ECMAScript 定义了"对象定

javascript学习笔记---ECMAScriptECMAScript 对象----定义类或对象

使用预定义对象只是面向对象语言的能力的一部分,它真正强大之处在于能够创建自己专用的类和对象. ECMAScript 拥有很多创建对象或类的方法. 原始的方式 因为对象的属性可以在对象创建后动态定义(后绑定),类似下面的代码: var oCar = new Object; oCar.color = "blue"; oCar.doors = 4; oCar.mpg = 25; oCar.showColor = function() { alert(this.color); };不过这里有一

javascript学习笔记---ECMAScriptECMAScript 对象----修改对象

通过使用 ECMAScript,不仅可以创建对象,还可以修改已有对象的行为. prototype 属性不仅可以定义构造函数的属性和方法,还可以为本地对象添加属性和方法. 创建新方法 通过已有的方法创建新方法Number.prototype.toHexString = function() { return this.toString(16); }; 在此环境中,关键字 this 指向 Number 的实例,因此可完全访问 Number 的所有方法.有了这段代码,可实现下面的操作: var iNu

javascript学习笔记——如何修改&lt;a href=&quot;#&quot;&gt;url name&lt;/a&gt;

0.前言 使用了一段时间javascript,再花了点时间学习了jquery,但是总是感觉自己很"迷糊",例如<a href="#">url name</a>中,如果修改href中的"#"应如何编写代码,如果修改url name应如何编写代码.再加上javascript和jquery操作方法略有不同,所以我就更"迷糊"了. [说明] 曾经使用关键词--"innerHTML和value区别&qu

javascript学习笔记---ECMAScript语法(辅助)

1.区分大小写. test与Test变量是两个不同的变量 2.变量是弱变量. 与C,java等等语言变量不是很一样. 如下java代码 ? 1 2 3 4 int i =0; //再次赋值 i = 10;//ok i = "hello";//wrong 类型不匹配 javascript ? 1 2 3 4 var i = 9; //再次赋值 i = 10;//ok i = "hello";//ok 但是不建议这么干,如此会给开发造成干扰,不明确变量的类型.(变量命名