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;