对象化编程--基本对象

  • 来源: 互联网 作者: rocket   2008-03-20/13:48
  • 现在我们要复习以上学过的内容了——把一些数据类型用对象的角度重新学习一下。

    Number “数字”对象。这个对象用得很少,作者就一次也没有见过。不过属于“Number”的对象,也就是“变量”就多了。

    属性

    MAX_VALUE 用法:Number.MAX_VALUE;返回“最大值”。
    MIN_VALUE
    用法:Number.MIN_VALUE;返回“最小值”。
    NaN
    用法:Number.NaN 或 NaN;返回“NaN”。“NaN”(不是数值)在很早就介绍过了。
    NEGATIVE_INFINITY
    用法:Number.NEGATIVE_INFINITY;返回:负无穷大,比“最小值”还小的值。
    POSITIVE_INFINITY
    用法:Number.POSITIVE_INFINITY;返回:正无穷大,比“最大值”还大的值。

    方法

    toString() 用法:<数值变量>.toString();返回:字符串形式的数值。如:若 a == 123;则 a.toString() == '123'。

    String 字符串对象。声明一个字符串对象最简单、快捷、有效、常用的方法就是直接赋值。

    属性

    length 用法:<字符串对象>.length;返回该字符串的长度。

    方法

    charAt() 用法:<字符串对象>.charAt(<位置>);返回该字符串位于第<位置>位的单个字符。注意:字符串中的一个字符是第 0 位的,第二个才是第 1 位的,最后一个字符是第 length - 1 位的。
    charCodeAt()
    用法:<字符串对象>.charCodeAt(<位置>);返回该字符串位于第<位置>位的单个字符的 ASCII 码。
    fromCharCode()
    用法:String.fromCharCode(a, b, c...);返回一个字符串,该字符串每个字符的 ASCII 码由 a, b, c... 等来确定。
    indexOf()
    用法:<字符串对象>.indexOf(<另一个字符串对象>[, <起始位置>]);该方法从<字符串对象>中查找<另一个字符串对象>(如果给出<起始位置>就忽略之前的位置),如果找到了,就返回它的位置,没有找到就返回“-1”。所有的“位置”都是从零开始的。
    lastIndexOf()
    用法:<字符串对象>.lastIndexOf(<另一个字符串对象>[, <起始位置>]);跟 indexOf() 相似,不过是从后边开始找。
    split()
    用法:<字符串对象>.split(<分隔符字符>);返回一个数组,该数组是从<字符串对象>中分离开来的,<分隔符字符>决定了分离的地方,它本身不会包含在所返回的数组中。例如:'1&2&345&678'.split('&')返回数组:1,2,345,678。关于数组,我们等一下就讨论。
    substring()
    用法:<字符串对象>.substring(<始>[, <终>]);返回原字符串的子字符串,该字符串是原字符串从<始>位置到<终>位置的前一位置的一段。<终> - <始> = 返回字符串的长度(length)。如果没有指定<终>或指定得超过字符串长度,则子字符串从<始>位置一直取到原字符串尾。如果所指定的位置不能返回字符串,则返回空字符串。
    substr()
    用法:<字符串对象>.substr(<始>[, <长>]);返回原字符串的子字符串,该字符串是原字符串从<始>位置开始,长度为<长>的一段。如果没有指定<长>或指定得超过字符串长度,则子字符串从<始>位置一直取到原字符串尾。如果所指定的位置不能返回字符串,则返回空字符串。
    toLowerCase()
    用法:<字符串对象>.toLowerCase();返回把原字符串所有大写字母都变成小写的字符串。
    toUpperCase() 用法:<字符串对象>.toUpperCase();返回把原字符串所有小写字母都变成大写的字符串。

    Array 数组对象。数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置(既然是“位置”,就也是从零开始的啦)。

    数组的定义方法:

    var <数组名> = new Array();

    这样就定义了一个空数组。以后要添加数组元素,就用:

    <数组名>[<下标>] = ...;

    注意这里的方括号不是“可以省略”的意思,数组的下标表示方法就是用方括号括起来。

    如果想在定义数组的时候直接初始化数据,请用:

    var <数组名> = new Array(<元素1>, <元素2>, <元素3>...);

    例如,var myArray = new Array(1, 4.5, 'Hi'); 定义了一个数组 myArray,里边的元素是:myArray[0] == 1; myArray[1] == 4.5; myArray[2] == 'Hi'。

    但是,如果元素列表中只有一个元素,而这个元素又是一个正整数的话,这将定义一个包含<正整数>个空元素的数组。

    注意:JavaScript只有一维数组!千万不要用“Array(3,4)”这种愚蠢的方法来定义 4 x 5 的二维数组,或者用“myArray[2,3]”这种方法来返回“二维数组”中的元素。任意“myArray[...,3]”这种形式的调用其实只返回了“myArray[3]”。要使用多维数组,请用这种虚拟法:

    var myArray = new Array(new Array(), new Array(), new Array(), ...);

    其实这是一个一维数组,里边的每一个元素又是一个数组。调用这个“二维数组”的元素时:myArray[2][3] = ...;

    属性

    length 用法:<数组对象>.length;返回:数组的长度,即数组里有多少个元素。它等于数组里最后一个元素的下标加一。所以,想添加一个元素,只需要:myArray[myArray.length] = ...。

    方法

    join() 用法:<数组对象>.join(<分隔符>);返回一个字符串,该字符串把数组中的各个元素串起来,用<分隔符>置于元素与元素之间。这个方法不影响数组原本的内容。
    reverse()
    用法:<数组对象>.reverse();使数组中的元素顺序反过来。如果对数组[1, 2, 3]使用这个方法,它将使数组变成:[3, 2, 1]。
    slice()
    用法:<数组对象>.slice(<始>[, <终>]);返回一个数组,该数组是原数组的子集,始于<始>,终于<终>。如果不给出<终>,则子集一直取到原数组的结尾。
    sort()
    用法:<数组对象>.sort([<方法函数>]);使数组中的元素按照一定的顺序排列。如果不指定<方法函数>,则按字母顺序排列。在这种情况下,80 是比 9 排得前的。如果指定<方法函数>,则按<方法函数>所指定的排序方法排序。<方法函数>比较难讲述,这里只将一些有用的<方法函数>介绍给大家。

    按升序排列数字:

    function sortMethod(a, b) {
        return a - b;
    }

    myArray.sort(sortMethod);

    按降序排列数字:把上面的“a - b”该成“b - a”。

    有关函数,请看下面。

    Math “数学”对象,提供对数据的数学计算。下面所提到的属性和方法,不再详细说明“用法”,大家在使用的时候记住用“Math.<名>”这种格式。

    属性

    E 返回常数 e (2.718281828...)。
    LN2
    返回 2 的自然对数 (ln 2)。
    LN10
    返回 10 的自然对数 (ln 10)。
    LOG2E
    返回以 2 为低的 e 的对数 (log2e)。
    LOG10E
    返回以 10 为低的 e 的对数 (log10e)。
    PI
    返回π(3.1415926535...)。
    SQRT1_2
    返回 1/2 的平方根。
    SQRT2
    返回 2 的平方根。

    方法

    abs(x) 返回 x 的绝对值。
    acos(x)
    返回 x 的反余弦值(余弦值等于 x 的角度),用弧度表示。
    asin(x)
    返回 x 的反正弦值。
    atan(x)
    返回 x 的反正切值。
    atan2(x, y)
    返回复平面内点(x, y)对应的复数的幅角,用弧度表示,其值在 -π 到 π 之间。
    ceil(x)
    返回大于等于 x 的最小整数。
    cos(x)
    返回 x 的余弦。
    exp(x)
    返回 e 的 x 次幂 (ex)。
    floor(x)
    返回小于等于 x 的最大整数。
    log(x)
    返回 x 的自然对数 (ln x)。
    max(a, b)
    返回 a, b 中较大的数。
    min(a, b)
    返回 a, b 中较小的数。
    pow(n, m)
    返回 n 的 m 次幂 (nm)。
    random()
    返回大于 0 小于 1 的一个随机数。
    round(x)
    返回 x 四舍五入后的值。
    sin(x)
    返回 x 的正弦。
    sqrt(x)
    返回 x 的平方根。
    tan(x)
    返回 x 的正切。

    Date 日期对象。这个对象可以储存任意一个日期,从 0001 年到 9999 年,并且可以精确到毫秒数(1/1000 秒)。在内部,日期对象是一个整数,它是从 1970 年 1 月 1 日零时正开始计算到日期对象所指的日期的毫秒数。如果所指日期比 1970 年早,则它是一个负数。所有日期时间,如果不指定时区,都采用“UTC”(世界时)时区,它与“GMT”(格林威治时间)在数值上是一样的。

    定义一个日期对象:

    var d = new Date;

    这个方法使 d 成为日期对象,并且已有初始值:当前时间。如果要自定初始值,可以用:

    var d = new Date(99, 10, 1);     //99 年 10 月 1 日
    var d = new Date('Oct 1, 1999'); //99 年 10 月 1 日

    等等方法。最好的方法就是用下面介绍的“方法”来严格的定义时间。

    方法

    以下有很多“g/set[UTC]XXX”这样的方法,它表示既有“getXXX”方法,又有“setXXX”方法。“get”是获得某个数值,而“set”是设定某个数值。如果带有“UTC”字母,则表示获得/设定的数值是基于 UTC 时间的,没有则表示基于本地时间或浏览期默认时间的。

    如无说明,方法的使用格式为:“<对象>.<方法>”,下同。

    g/set[UTC]FullYear() 返回/设置年份,用四位数表示。如果使用“x.set[UTC]FullYear(99)”,则年份被设定为 0099 年。
    g/set[UTC]Year()
    返回/设置年份,用两位数表示。设定的时候浏览器自动加上“19”开头,故使用“x.set[UTC]Year(00)”把年份设定为 1900 年。
    g/set[UTC]Month()
    返回/设置月份。
    g/set[UTC]Date()
    返回/设置日期。
    g/set[UTC]Day()
    返回/设置星期,0 表示星期天。
    g/set[UTC]Hours()
    返回/设置小时数,24小时制。
    g/set[UTC]Minutes()
    返回/设置分钟数。
    g/set[UTC]Seconds()
    返回/设置秒钟数。
    g/set[UTC]Milliseconds()
    返回/设置毫秒数。
    g/setTime()
    返回/设置时间,该时间就是日期对象的内部处理方法:从 1970 年 1 月 1 日零时正开始计算到日期对象所指的日期的毫秒数。如果要使某日期对象所指的时间推迟 1 小时,就用:“x.setTime(x.getTime() + 60 * 60 * 1000);”(一小时 60 分,一分 60 秒,一秒 1000 毫秒)。
    getTimezoneOffset()
    返回日期对象采用的时区与格林威治时间所差的分钟数。在格林威治东方的市区,该值为负,例如:中国时区(GMT+0800)返回“-480”。
    toString()
    返回一个字符串,描述日期对象所指的日期。这个字符串的格式类似于:“Fri Jul 21 15:43:46 UTC+0800 2000”。
    toLocaleString()
    返回一个字符串,描述日期对象所指的日期,用本地时间表示格式。如:“2000-07-21 15:43:46”。
    toGMTString()
    返回一个字符串,描述日期对象所指的日期,用 GMT 格式。
    toUTCString()
    返回一个字符串,描述日期对象所指的日期,用 UTC 格式。
    parse()
    用法:Date.parse(<日期对象>);返回该日期对象的内部表达方式。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多