什么是JScript?
JScript 是 Microsoft 公司对 ECMA 262 语言规范(ECMAScript 编辑器 3)的一种实现。除了少数例外(为了保持向后兼容),JScript 完全实现了 ECMA 标准。本概述的目的就是引导您学习使用 JScript。
使用 JScript
JScript 是一种解释型的、基于对象的脚本语言。尽管与 C++ 这样成熟的面向对象的语言相比,JScript 的功能要弱一些,但对于它的预期用途而言,JScript 的功能已经足够大了。
JScript 不是其他语言的精简版(例如,它只是与 Java 有点模糊而间接的关系),也不是任何事物的简化。不过,它有其局限性。例如,您不能使用该语言来编写独立运行的应用程序,并且没有对读写文件的内置支持。此外,JScript 脚本只能在某个解释器或“宿主”上运行,如 Active Server Pages(ASP)、Internet 浏览器或者 Windows 脚本宿主。
JScript 是一种宽松类型的语言。宽松类型意味着您不必显式定义变量的数据类型。事实上 JScript 更进一步。您无法在JScriot上明确地定义数据类型。此外,在大多数情况下,JScript 将根据需要自动进行转换。例如,如果将一个数值添加到由文本组成的某项(一个字符串),该数值将被转换为文本。
编写 JScript 代码
与其他许多编程语言一样, Microsoft JScript 是用文本方式编写的,并被组织成为语句、由相关的语句集组成的块、以及注释。在一条语句内可以使用变量、比如字符串和数字(称为“文字”)的立即数、以及表达式。
语句
JScript 程序是语句的集合。一条 Jscript 语句相当于英语中的一个完整句。Jscript 语句将表达式组合起来,完成一个任务。
一条语句由一个或多个表达式、关键字或者运算符(符号)组成。典型地,一条语句写一行,尽管一条语句可以超过两行或更多行。两条或更多条语句也可以写在同一行上,语句之间用分号“;”隔开。通常,每一新行开始一条新语句。不过显式地终止语句是一个好方法。这是用分号 (;)来实现的,分号是 JScript 语句的终止字符。下面给出 Jscript 语句的两隔示例。
aBird = "Robin"; //将文本“Robin”赋值给变量 aBird
var today = new Date(); // 将今天的日期赋值给变量 today
用大括号()括起来的一组 JScript 语句称为一个语句块。分组到一个语句块中的语句通常可当作单条语句处理。这就是说在 JScript 期望有一条单个语句的大多数地方可以使用语句块。应该注意以 for 和 while 打头的循环语句是例外情况。注意,语句块中的原始语句以分号结束,但语句块本身并不以分号结束。
通常,在函数和条件语句中使用语句块。注意,Jscript 与 C++ 以及其他某些语言不同,它不认为语句块是一个新的范围;只有函数创建新范围。在下面的示例中,第一条语句开始定义一个函数,该函数包含一个五条语句组成的语句块。语句块后的三条语句没有用大括号括起来;这些语句不是一个语句块,所以就不是函数定义的一部分。
function convert(inches)
feet = inches / 12; // 这五条语句属于一个语句块。
miles = feet / 5280;
nauticalMiles = feet / 6080;
cm = inches * 2.54;
meters = inches / 39.37;
km = meters / 1000; // 这三条语句不在语句块内。
kradius = km;
mradius = miles;
注释
单行的 JScript 注释以一对正斜杠(//)开始。下面给出一个单行注释的示例。
aGoodIdea = "Comment your code thoroughly."; // 这是一个单行注释。
多行注释以一个正斜杠加一个星号的组合(/*)开始,并以其逆向顺序 (*/)结束。
/*
这是一个用来解释前面的代码语句的多行注释。
该语句将一个值赋给 aGoodIdea 变量。
用引号包含的这种值称为一个文字。
文字显式并直接包含信息;
而不是简接地引用信息。
(引号不属于该文字的内容。)
*/
注意 如果您试图将一个多行注释插入到另一个中,JScript 不能按正常的方式解释生成的多行注释。标明嵌入的多行注释结束的 */ 被认为是整个多行注释的结尾。这就意味着嵌入多行注释之后的文本不再被认为是注释;相应地,它将被解释为 JScript 代码,并会产生语法错误。
建议将所有的注释写为单行注释的语句块。这样您以后就能够将大段的代码与多行注释区分开。
//这是另一种多行注释,写成一系列单行注释。
// 在执行完该语句后,可以使用 aGoodIdea 变量的名字来引用其内容,
// 如下一条语句那样,即采用连接操作将字符串文字添加到
// aGoodIdea 变量,以创建一个新的变量。
var extendedIdea = aGoodIdea + " You never know when you'll have to figure out what it does.";
赋值和相等
JScript 语句中使用等号 (=)给变量赋值:等号是赋值运算符。= 运算符左边的操作项总是一个 Lvalue。Lvalue 可以是:
变量,
数组元素,
对象属性。
= 运算符右边的操作项总是一个 Rvalue。Rvalues 可以是任何类型的一个任意值,包括表达式的值。下面给出一个 JScript 赋值语句的示例。
anInteger = 3;
Jscript 编译器解释本语句的意义为:“将 3 赋给变量 anInteger”或“anInteger 的值为 3”。
确定您理解了 = 运算符(赋值)和 == 运算符(相等)的差异。在比较两个值是否相等时,应使用两个等于号 (==)。这些内容将在 控制程序的流程 中详细介绍。
表达式
JScript 表达式是指 JScript 解释器能够计算生成值的 JScript “短语”。这个值可以是任何有效的 JScript 类型 — 数字、字符串、对象,等等。最简单的表达式是文字。下面给出 JScript 文字表达式的一些示例。
3.9 // 数字文字
"Hello!" // 字符串文字
false // 布尔文字
null // 文字空值
x:1, y:2 // 对象文字
[1,2,3] // 数组文字
function(x)return x*x; // 函数文字
更多复杂的表达式中包含变量、函数、函数调用以及其他表达式。可以用运算符将表达式组合,创建复合表达式。运算符可以是:
+ // 加法
- // 减法
* // 乘法
/ // 除法
下面给出 JScript 复合表达式的一些示例。
var anExpression = 3 * (4 / 5) + 6;
var aSecondExpression = Math.PI * radius * radius;
var aThirdExpression = aSecondExpression + "%" + anExpression;
var aFourthExpression = "(" + aSecondExpression + ") % (" + anExpression + ")";
jscript 教程 (中文CHM版,很详细)