来自当知百科
跳转到: 导航搜索

目录

JScript 是一种宽松类型的语言

  宽松类型意味着您不必显式定义变量的数据类型。事实上 JScript更进一步。您无法在JScript上明确地定义数据类型。此外,在大多数情况下,JScript将根据需要自动进行转换。例如,如果将一个数值添加到由文本组成的某项(一个字符串),该数值将被转换为文本。

最佳功能相结合的版本

  JScript 8.0 是 Microsoft 实现 ECMA 262 语言的新一代版本。通过将先前版本的 JScript功能集与基于类的语言的最佳功能相结合,JScript 8.0 包含了这两个领域的精华。JScript 8.0 的改进内容(正在结合ECMAScript 第 4版开发研制)包括:真正的编译代码、类型化和无类型变量、后期和早期绑定、类(具有继承、函数重载、属性访问器,等等)、包、跨语言支持,以及对.NET Framework 的完全访问。

新增功能

  JScript 8.0 是一种真正的面向对象的脚本语言。尽管 JScript 8.0现在可以使用类、类型和其他高级语言功能来编写可靠的应用程序,但它仍然保留着其“脚本”特色,支持无类型编程、expando函数和类、动态代码执行(使用 eval)等。

  JScript 8.0 不仅是一种无类型语言,现在它还可以用作一种强类型化的语言。在先前版本中,JScript松散的类型化结构意味着变量采用赋给它们的值的类型。实际上,在先前版本中用户不能声明变量的数据类型。JScript 8.0允许对变量进行类型批注,这与先前版本的 JScript相比提供了更大的灵活性。这种方法将变量绑定到某个特定的数据类型,这样该变量就只能存储这种类型的数据。

  在编程语言中,强类型有许多优势。除了当所使用的数据类型恰好适合正在使用的数据时获得的益处外,还有其他几点好处:

  提高执行速度

  运行时/编译时类型检查

  自记录代码

  最后,JScript 8.0 并不是另一种编程语言的简单版本,也不是对任何内容的简化。而是一种应用非常广泛的现代脚本语言。

编写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 haveto 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 + ")";

个人工具
名字空间

变换
查看
操作
导航
工具箱