企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
| JScript  | [语言参考](#) | |-----|-----| # 内部对象 Microsoft Jscript 提供了 11 个内部(或“内置”)对象。它们是**Array**、**Boolean**、**Date**、**Function**、**Global**、**Math**、**Number**、**Object**、**RegExp**、**Error** 以及 **String** 对象。每一个对象有相关的方法和属性,这在[语言参考](#)中有详细的描述。本节中也描述了某些对象。 ### Array 对象 数组下标可以被认为是对象的属性,它是通过数字索引来引用的。注意添加到数组中的已命名的属性不能通过数字来索引;它们是与数组元素分离的。 使用 **new** 运算符和 **Array() **[构造器](#) 生成一个新的数组,如下面的示例。 ~~~ var theMonths = new Array(12); theMonths[0] = "Jan"; theMonths[1] = "Feb"; theMonths[2] = "Mar"; theMonths[3] = "Apr"; theMonths[4] = "May"; theMonths[5] = "Jun"; theMonths[6] = "Jul"; theMonths[7] = "Aug"; theMonths[8] = "Sep"; theMonths[9] = "Oct"; theMonths[10] = "Nov"; theMonths[11] = "Dec"; ~~~ 用关键字 **Array** 生成数组时,Jscript 包含了 **length** 属性,该属性记录了数组入口数。如果没有给该属性指定值,则设置长度为 0 且数组没有入口点。如果指定一个数值,则将长度设置为该数。如果指定了不止一个参数,则这些参数被用作数组的入口。另外,参数的数目被赋给 length 属性。如下面的示例与前一个示例是等价的。 ~~~ var theMonths = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); ~~~ 当向用关键字 **Array** 生成的数组中添加元素时,Jscript 自动改变属性 **length** 的值。Jscript 中的数组索引总是以 0 开始,而不是 1,所以属性 length 通常比数组的最大索引大 1。 ### String对象 在 Jscript 中,可以将字符串(和数)当作对象来处理。[string 对象](#) 有一些内置方法,可以和自己的字符串一起使用。其中一个是[substring 方法](#),它返回字符串的一部分。该方法以两个数字作为参数。 ~~~ aString = "0123456789"; var aChunk = aString.substring(4, 7); // ~~~ 将 ~~~ aChunk ~~~ 设为 ~~~ "456" ~~~ 。 ~~~ var aNotherChunk = aString.substring(7, 4); // ~~~ 将 ~~~ aNotherChunk ~~~ 设为 ~~~ "456" ~~~ 。 ~~~ // ~~~ 使用上面生成数组的示例: ~~~ firstLetter = theMonths[5].substring(0,1); // ~~~ 将变量 ~~~ firstLetter ~~~ 设为“ ~~~ J ~~~ ”。 **String** 对象的另一个属性是 **length** 属性。本属性包含了字符串中的字符数(空字符串为 0)。它是一个数值,可以直接在计算中使用。 ~~~ var howLong = "Hello World".length // ~~~ 设置变量 ~~~ howLong ~~~ 为 ~~~ 11 ~~~ 。 ### Math 对象 **Math** 对象有许多预定义属性和方法。属性是特殊的数字。这些特殊的数字之一是 pi 值(近似 3.14159…)。这是 **Math.PI** 属性,如下例所示。 ~~~ // ~~~ 声明一个半径变量并赋数值。 ~~~ var circleArea = Math.PI * radius * radius; // ~~~ 注意 ~~~ Math ~~~ 和 ~~~ PI ~~~ 大写。 **Math** 对象的一个内置方法是乘幂方法(或 **pow**),使用该方法求得指定数的幂次。下面的例子同时使用了 pi 和乘幂。 ~~~ // ~~~ 本公式计算给定半径的球体的体积。 ~~~ volume = (4/3)*(Math.PI*Math.pow(radius,3)); ~~~ ### Date 对象 **Date** 对象可以被用来表示任意的日期和时间,获取当前系统日期以及计算两个日期的间隔。它拥有一些预定义的属性和方法。通常,**Date** 对象给出星期;月份,天数和年份;以及以小时,分钟和秒表示的时间。该信息是基于 1970 年1 月 1 日 00:00:00.000 GMT 开始的毫秒数,其中 GMT 是格林威治标准时间(首选术语是 UTC,或者“全球标准时间”,它引用的信号是由“世界时间标准”发布的)。Jscript 可以处理 250,000 B.C. 到 255,000 A.D范围内的日期。 使用 **new** 运算符创建一个新的 **Date** 对象。下面的示例计算当年已过去的天数和今年剩下的天数。 ~~~ /* ~~~ 本示例使用前面定义的月份名称数组。 第一条语句以“ ~~~ Day Month Date 00:00:00 Year ~~~ ”格式 对 ~~~ thisIsToday ~~~ 变量赋值。 ~~~ */ ~~~ ~~~ var thisIsToday = new Date(); ~~~ ~~~ var toDay = new Date(); // ~~~ 获取今天的日期。 ~~~ // ~~~ 提取年,月,日。 ~~~ var thisYear = toDay.getFullYear(); ~~~ ~~~ var thisMonth = theMonths[toDay.getMonth()]; ~~~ ~~~ var thisDay = thisMonth + " " + toDay.getDate() + ", " + thisYear; ~~~ ### Number 对象 除了 **Math** 对象中可用的特殊数值属性(例如 **PI**)外,在 Microsoft Jscript 中, **Number **对象有几个其他的数值属性。 | 属性 | 描述 | |-----|-----| | MAX_VALUE | 可能的最大数大约为 1.79E+308;可以是正数或负数。(具体数值随系统不同而有微小差别。) | | MIN_VALUE | 可能的最小数大约为 2.22E-308;可以是正数或负数。(具体数值随系统不同而有微小差别。) | | NaN | 特殊非数量值,“不是数值”。 | | POSITIVE_INFINITY | 比最大正数(Number.MAX_VALUE)还要大的任意正值自动被转换为此值,代表正无穷大。 | | NEGATIVE_INFINITY | 比最小的负数(负的 Number.MAX_VALUE)还小的任意值被自动转换为此值,代表负无穷。 | **Number.NaN** 是一个特殊的属性,被定义为“不是数值”。例如被 0 除返回 **NaN**。试图解析一个无法被解析为数字的字符串同样返回 **Number.NaN**。把 **NaN** 与任何数值或本身作比较的结果都是不相等。不能通过与 **Number.NaN** 比较来测试 **NaN** 结果,而应该使用 **isNaN()** 函数。 [© 2000 Microsoft Corporation 版权所有。保留所有权利。使用规定。](#)