固有对象
www.51chm.com
Microsoft JScript 提供了九个固有(或称“内置”)对象。它们是 Array 、Boolean 、Date 、Function 、Global 、Math 、Number 、Object 和String 对象。 每个固有对象都有与之关联的方法和属性,这些方法和属性均在语言参考 中详细描述。 这里描述了几个对象。
Array 对象
在 JScript 中,对象作为数组处理,数组作为对象处理。数组的下标完全等价于对象的属性,可以按数字引用(如果对其指定了名称,则也可以按名称来引用)。要创建一个新数组,请使用 new 运算符和 Array() 构造函数 ,如下例所示。
var theMonths = new Array(12) {
theMonths[0] = "一月";
theMonths[1] = "二月";
theMonths[2] = "三月";
theMonths[3] = "四月";
theMonths[4] = "五月";
theMonths[5] = "六月";
theMonths[6] = "七月";
theMonths[7] = "八月";
theMonths[8] = "九月";
theMonths[9] = "十月";
theMonths[10] = "十一月";
theMonths[11] = "十二月";
}
在使用 Array 关键字来创建数组时,JScript 在该数组中包括了一个只写的 length 属性,用来记录数组中的项数。如果您没有指定一个数值,则 length 被设置为 0,且数组没有任何项。如果您指定了一个数值,则 length 被设置为该数值。如果您指定了多个参数,则这些参数将作为数组的项,并将参数的个数指定给 length 属性,如下例所示。该示例与上一节示例等价。
var theMonths = new Array("一月", "二月", "三月", "四月", "五月", "六月",
"七月", "八月", "九月", "十月", "十一月", "十二月");
对于使用 Array 关键字创建的数组,当给数组添加元素时,JScript 将自动更改 length 的数值。
String 对象
在 JScript 中字符串是对象。这意味着在任何时候声明一个字符串变量或使用一个字符串文字,实际上就是创建一个新的字符串对象。String 对象有若干内置方法,您可以对该字符串使用这些方法。其中一个方法是 substring 方法,用于返回该字符串的一部分。该方法需要两个数字作为其参数。
aString = "0123456789";
var aChunk = aString.substring(4, 7); // 将 aChunk 设置为 "456"。
var aNotherChunk = aString.substring(7, 4); // 将 aNotherChunk 设置为 "456"。
// 使用前面的 Array 创建示例:
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 属性的示例。
// radius 变量已经声明并赋值。
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 或曰“全球标准时间”,这是由世界时间标准组织(World Time Standard)发布的符号。
www.51chm.com
注意 就 JScript 而言,时间是从 1970 年 1 月 1日的午夜开始的,您不能让 JScript 创建一个 Date 对象来表示在此之前的时间。如果需要处理更早的时间,您必须自己编写代码实现,这可是一个艰巨的任务。
www.51chm.com
要创建一个新的 Date 对象,您可以使用 new 运算符。下面的示例计算今年已经过去的天数和还剩下的天数。
/*
该示例使用了前面定义的月份数组。第一个语句将今天的日期指定给 thisIsToday,其格式为 "周工作日 月份 日 00:00:00 年份"。
*/
var thisIsToday = new Date();
var toDay = new Date(); // 获取今天的日期。
// 提取年、月、日信息。
var thisYear = toDay.getYear() + 1900;
var thisMonth = theMonths[toDay.getMonth()];
var thisDay = thisMonth + " " + toDay.getDate() + "," + (parseInt(toDay.getYear()) + 1900);
// 确定从开始以来的天数 #。
thisDay = Math.round(Date.parse(thisDay)/8.64e7);
// 对今年的第一天采取同样的操作。
var firstDay = "Jan 1, " + thisYear;
firstDay = Math.floor(Date.parse(firstDay)/8.64e7);
// 对今年的最后一天在此采取同样的操作,以防止闰年。
var lastDay = "Dec 31, " + thisYear;
lastDay = Math.floor(Date.parse(lastDay)/8.64e7);
// 计算这一年的天数。
var daysInYear = (lastDay - firstDay) + 1;
// 确定已过去多少天,还剩下多少天。
var daysElapsed = thisDay - firstDay;
var daysLeft = daysInYear - daysElapsed;
// 对普遍情况建立评论。
var comment1 = "今年已过去 " + daysElapsed+ " 天。";
var comment2 = "这意味着在 " + "thisYear" + " 还有 " + daysLeft + " 天。";
// 包含特殊情况:一年的开始&结束,以及只剩一天。
if (daysElapsed == 0) {
comment1 = "今天是 " + thisYear + " 的 1 月 1 日。";
}
if (daysElapsed == 1) {
comment1 = "只过去了一天。";
}
if(daysElapsed == daysInYear) {
comment1 = thisYear + " 快要结束了。";
}
if (daysLeft == 0) {
comment2 = "新年最诚挚的祝福!";
}
if (daysLeft == 1) {
comment2 = thisYear + "只剩下一天了。";
}
if (daysLeft == daysInYear) {
comment2 = "新年快乐!";
}
Number 对象
除了在 Math 对象中可用的特定数值属性(例如 PI )之外,在 Microsoft JScript 中还可以由 Number 对象得到若干其他属性。
属性 描述
MAX_VALUE 最大的可能数值,大约为
1.79E+308; 可以是正数也可以是负数。(对不同的系统这个数值有稍许变化。)
MIN_VALUE 最小的可能数值,大约为 2.22E-308;可以是正数也可以是负数。(对不同的系统这个数值有稍许变化。)
NaN 专用的非数值型取值,“不是一个数。”
POSITIVE_INFINITY 任何比 Number.MAX_VALUE 大的正数 都将自动转换为这个值;用 "Inf" 表示。
NEGATIVE_INFINITY 任何比 -Number.MAX_VALUE 更小的负数 都将自动转换为这个值;用 "-Inf" 表示。
Number.NaN 是一个特别的属性,被定义为“不是一个数”。例如,除零操作将返回 NaN 。对一个不能解释为数值的字符串进行转换也将返回 Number.NaN 。NaN 不等于任何数值,也不等于它本身。如果要对 NaN 结果进行测试,请不要对 Number.NaN 进行比较;而应使用 isNaN() 函数。
www.51chm.com