ECMAScript引用类型

在ECMAScript中,变量可以存在两种类型的值,即原始类型值和引用类型值。原始类型值直接存储变量访问的地址,引用类型值存储的是一个指针(point),指向存储对象的内存处。引用类型通常是类,也就是说引用类型所处理的是对象。

1、Object对象

ECMAScript中所有对象都由Object对象继承而来,Object对象中的所有属性和方法都会出现在其他对象中。

Object对象属性

constructor属性返回对创建此对象的数组函数的引用,constructor属性始终指向创建当前对象的构造函数。例如:

        var test=new Array();

        document.write(test.constructor==Array);//结果true

prototype属性 : 返回对象类型原型的引用。原型最简单的用法是动态扩展类的方法和属性。例如:

    //创建Car类,有一个Color属性和一个获得Color属性值的方法getColor()

    function Car(color){

             this.Color=color;

             this.getColor=function(){

                     return this.Color;

               }

         }

Car.prototype.Speed=150;//增加属性

Car.prototype.getSpeed=function(){//增加方法

               return this.Speed;

};

var oCar=new Car("red");

document.write(oCar.getColor()+oCar.getSpeed());//输出“red”和150

 

Object对象常用的方法

hasOwnProperty(Property)方法判断对象是否有某个特定的属性,必须用字符串指定该属性。例如

     document.write(oCar.hasOwnProperty('Color'));//输出true

isPrototypeOf(object)方法判断该对象是否为另一个对象的原型,该方法可以用于确定对象的类。例如

  var a=new Array();

document.write(Object.prototype.isPrototypeOf(a));//输出false

document.write(Array.prototype.isPrototypeOf(a));//输出true

document.write(Object.prototype.isPrototypeOf(Array.prototype));//输出true

toString()方法返回对象的字符串表示。

valueOf()方法返回与对象相关的原始值(如果这样的值存在)。对于类型Object的对象,没有原始值,因此该方法返回这些对象的自身。

例子:

var iNum=1; document.write(iNum.valueOf());//输出1

var str="1";  document.write(str.valueOf());//输出“1”

function fn(){}; document.write(fn.valueOf());//返回函数本身

arr=new Array(1,2); document.write(arr.valueOf());//输出数组

obj=new Object();  document.write(obj.valueOf());//返回对象自身

Number对象 

Number对象方法

toFixed(num):把Number四舍五入为指定小数位数的数字。num规定小数的位数,是0~20之间的值,包括0和20.

String对象常用方法

charAt()和charCodeAt()方法:  

        这两个方法访问的是字符串中的单个字符,都只有一个参数,即要操作的字符的位置。

        charAt()方法返回的是包含指定位置处的字符的字符串,charCodeAt()方法返回该字符的字符编码

   例子:var str=new String('hello world');

             document.write(str.charAt(1)+','+str.charCodeAt(1));//输出“e,101”

indexOf()和lastIndexOf()方法:

     这两个方法返回的都是指定的子串在另一个字符串中的位置。如果没有找到子串,则返回-1。indexOf()从头开始检索,lastIndexOf()从结尾开始检索。

slice()和subString()方法:

这两个方法返回的都是要处理的字符串的子串,都接受一个或两个参数。第一个参数子串的起始位置,第二个参数子串的终止位置(子串不包含终止位置的字符)。都不改变String对象本身的值,只返回基本的String值。

差异:在第一个参数为负值时,slice()方法会用字符串的长度加上参数,subString()方法则将其作为0处理。

instanceof运算符:

用于识别正在处理的对象的类型,能够确定对象为某种特定类型。

var oStr=new String('hello world');

document.write(oStr instanceof String);//输出true;