在ECMAScript中,變量可以存在兩種類型的值,即原始類型值和引用類型值。原始類型值直接存儲變量訪問的地址,引用類型值存儲的是一個指針(point),指向存儲對象的內存處。引用類型通常是類,也就是說引用類型所處理的是對象。
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對象方法
toFixed(num):把Number四捨五入爲指定小數位數的數字。num規定小數的位數,是0~20之間的值,包括0和20.
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;