JavaScript中对象类型的汇总及相关方法的简介

来源:互联网 发布:华伦夫妇知乎 编辑:程序博客网 时间:2024/06/10 22:34

     在 ECMAScript 中,所有对象并非同等创建的。

     一般来说,可以创建并使用的对象有三种:本地对象、内置对象和宿主对象。


   一、 本地对象

    ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。简单来说,本地对象就是 ECMA-262     定义的类

常用的本地对象有Function、Array、String、Boolean、Number、Date、RegExp、Error、Object。

   本地对象常用的方法可汇总如下:

    Array:

    push()//从数组的尾部插入元素

    pop()// 从数组的尾部插入元素

    unshift()//从数组的头部插入元素

    shift()//从数组的头部删除元素

    slice()//获取数组中的子数组

    splice()//可以插入、删除、替换数组中的元素

    concat()//返回合并后的新数组

    indexOf()//返回数组的下标,如果不存在则返回-1

    join()//返回一个由连字符和数组元素组成的字符串

    String:

    indexOf()//返回数组的下标,如果不存在则返回-1

    charAt()//返回字符串中指定下标的字符

    concat()//返回合并后的新字符串

    split()//根据指定字符将字符串分割成一个数组

    substring()//返回字符串中的子字符串

    search()   //参数是一个正则表达式,返回第一个与之匹配的子串的起始位置,如果找不到匹配的子串,它将返回-1.如果参数不是正则表达式,则首先会通过RegExp构造函数将它转换为正则表达式,该方法不支持全局检索,因为它忽略正则表达式中的修饰符g

    replace()  //方法用以执行检索与替换操作。其中第一个参数是一个正则表达式,第二个参数是要进行替换的字符串。如果第一个参数是字符串而不是正则表达式,则将直接搜索这个字符串,而不像search()一样首先通过RegExp()将它转换为正则表达式。

    match()  //该方法的参数是一个正则表达式,返回的是一个由匹配结果组成的数组。如果该正则表达式设置了修饰符g ,则该方法返回的数组包含字符串中的所有匹配结果。但如果没有设置修饰符g,match()就不会进行全局检索,它只检索第一个匹配。但即使match()执行的不是全局检索,它也返回 一个数组。在这种情况下,数组的第一个元素就是匹配的字符串,余下的元素则是正则表达式中用圆括号括起来的子表达式。

    Date:

    getTime()//返回自1970年以来所经历的毫秒数。也可以 +new Date()的方式获得其毫秒数

    setTime()//将毫秒数转换为日期格式

    getFullYears()//返回年份

    getMonth()//返回月份,以0开始,0代表1月,依此类推

    getDate()//返回日期

    getDay()//返回星期数,0代表星期日

    RegExp:

    RegExp对象定义了两个用于执行模式匹配操作的方法。其中最主要的执行模式匹配的方法是exec(),该方法的参数是一个字符串,exec()方法对一个指定的字符串执行一个正则表达式,简言之,就是在一个字符串中执行匹配检索。如果它没有找到任何匹配,就返回null,但如果它找到一个匹配,它将返回一个数组。这个数组的第一个元素包含的是与正则表达式相匹配的字符串,余下的元素是与圆括号内的子表达式相匹配的子串。属性index包含了发生匹配的字符位置,属性input引用的是正在检索的字符串。

   exec()方法的使用示例:

                        var pattern=/Java/g;
var text="JavaScript is more fun than Java!";
var result;
while((result=pattern.exec(text))!=null){
alert("Matched '"+result[0]+"'"+
" at position "+result.index+"; next search begins at "+pattern.lastIndex);
}

    另外一个方法是test(),它的参数是一个字符串,用test()对某个字符串进行检测,如果包含正则表达式的一个匹配结果,则返回true:

     


    二、 内置对象

    ECMA-262 把内置对象(built-in object)定义为“由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现”。这意味着开发者不必明确实例化内置对象,它已被实例化了。ECMA-262 只定义了两个内置对象,即 Global 和 Math (它们也是本地对象,根据定义,每个内置对象都是本地对象)。

    其中Math内置对象常用方法有:

    1、Math.min()和Math.max(),可以获得一个数据集的最小值和最大值。

    2、Math.abs(),返回参数的绝对值 。

    3、Math.random(),产生一个0到1的随机数 

    random()方法的用途很多,其中之一是,清除缓存,如:window.open("http://www.***.com/index.shtml?t="+Math.random)  //在url地址后面加上一个值为随即数的参数,能保证页面每次都从服务器上重新拉取,而不是读取缓存。 

    4、Math.floor(),Math.round(),Math.ceil() 
     Math.floor():把小数向下舍入成整数    例:alert(Math.floor(1.5))  //输出"1" 
     Math.round():把小数标准四舍五入成整数  例:alert(Math.round(1.5))  //输出"2" 
     Math.ceil():把小数向上舍入成整数  例:alert(Math.round(1.5))  //输出"2" 


     三、宿主对象

    所有非本地对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供的对象。

所有 BOM 和 DOM 对象都是宿主对象。

  其中DOM是一个使程序和脚本有能力动态地访问和更新文档的内容、结构以及样式的平台和语言中立的接口。,而BOM定义了JavaScript可以进行操作的浏览器的各个功能部件的接口。

它们之间的区别是:DOM描述了处理网页内容的方法和接口,BOM描述了与浏览器进行交互的方法和接口。


0 0
原创粉丝点击