JavaScript系列:ECMAScript參考型別

來源:互聯網
上載者:User

  參考型別通常叫作類(class),引用值所處理的為對象。對象是有new運算子加上要執行個體化的類的名字建立,當有不止一個參數時,ECMAScript要求使用括弧,如果沒有參數時,括弧可以省略。

var o1 = new Object();var o2 = new Object;

  儘管括弧不是必須的,但為避免婚禮,最好使用括弧。

 

1、Object類

  ECMAScript中的所有類都有Object類繼承而來,Object類中的所有屬性和方法都會出現在其他類中。

  Object類具有是屬性

  ◊ Constructor —— 對建立對象的函數的引用(指標)。對於Object類,該指標指向原始的object()函數。

  ◊ Prototype —— 對該對象的對象原型的引用。

  Object類具有的方法:

  ◊ HasOwnProperty(property) —— 判斷對象是否具有某個特定的屬性。必須使用字串指定該屬性(例如:o.HasOwnProperty("name"))。

  ◊ IsPrototypeOf(object) —— 判斷該對象是否為另一個對象的原型。

  ◊ PrototypeIsEnumerable(property) —— 判斷給定的屬性是否可以用於for..in語句進行枚舉。

  ◊ ToString() —— 返回對象的原始字串表示。對於Object類,ECMA-262沒有定義這個值,所以不同的ECMAScript實現具有不同的值。

  ◊ ValueOf() —— 返回最適合該對象的原始值。對於許多類,該方法返回的值都與ToString()的傳回值相同。

 

2、Boolean類

  Boolean類是Boolean原始類型的參考型別。要建立Boolean對象,只需要傳遞Boolean值作為參數:

var oBooleanObject = new Boolean(true);

  Boolean對象將重寫Object類的ValueOf()方法,返回原始值,即true或false。重寫ToString()方法,返回字串"true"和"false"。

 

3、Number類

  Number類是Number原始類型的參考型別。建立Number對象代碼如下:

var oNumberObject = new Number(55);

  使用valueOf()方法擷取數字對象Number原始值:

var iNumber = oNumberObject.valueOf();

  Number類處理數值的專用方法:

  ◊ toFixed() —— 返回具有指定位元小數的數位字串表示。

var oNumberObject = new Number(99);alert(oNumberObject.toFixed(2)); // outputs "99.00"

  toFixed()的方法參數說明應該顯示的小數位元,空的小數由0補充。toFixed()方法能表示具有0到20位小數的數字,超出這個範圍的值會引發錯誤。

  ◊ toExponential() —— 返回用科學記號標記法表示的數字字串形式。

  ◊ toPrecision() —— 返回數位預定形式或指數形式。

 

4、String類

  String類是String原始類型的對象標記法,建立String對象:

var oStringObject = new String('Hello World');

  String()對象的valueOf()和toString()方法都會返回String型的原始值:

alert(oStringObject.valueOf() == oStringObject.toString()); // outputs "true"

  String類屬性:

  ◊ length,返回字串中的字元個數;

var oStringObject = new String('Hello World');alert(oStringObject.length); // outputs "11"

  String類方法:

  ◊ charAt() —— 返回包含指定位置處的字元的字串; 第一個字元的位置是0,第二個字元的位置是1,依次類推。

var oStringObject = new String("Hello World");alert(oStringObject.charAt(1)); // outputs "e"

  ◊ charCodeAt() —— 返回包含指定位置處的字元的字元代碼; 第一個字元的位置是0,第二個字元的位置是1,依次類推。

var oStringObject = new String("Hello World");alert(oStringObject.charCodeAt(1)); // outputs "101"

  ◊ concat() —— 用於把一個或多個字串串連到String對象的原始值上,該方法返回的是String原始值,保持原始的String對象不變。

var oStringObject = new String("Hello ");var sResult = oStringObject.concat("World");alert(sResult);               // outputs "Hello World"alert(oStringObject);         // outputs "Hello"

  ◊ indexOf() —— 從字串開頭開始檢索指定的子串在另一個字串中的位置。如果沒有找到該子串,則返回-1。

  ◊ lastIndexOf() —— 從字串結尾開始檢索指定的子串在另一個字串中的位置。如果沒有找到該子串,則返回-1。

var oStringObject = new String("Hello World");alert(oStringObject.indexOf("0"));      // outputs "4"alert(oStringObject.lastIndexOf("0"));  // outputs "7"

  ◊ slice()substring() —— 兩者均返回要處理的字串的子串,都接受一個活兩個參數。第一個參數是要擷取的子串的起始位置,第二個參數是要擷取子串終止前的位置。如果省略第二個參數,終止位預設為字串的長度。

  slice()和substring()在參數為負數時,處理方式不同。對於負參數,slice()方法會用字串的長度加上參數,substring()方法則將其作為0處理,即忽略負數。

  ◊ toLowerCase() —— 將字串轉化成全小寫形式。

  ◊ toUpperCase() —— 將字串轉化成全大寫形式。

 

5、instanceof運算子

  instanceof運算子與typeof運算子相似,用於識別正在處理的對象的類型。與typeof方法不同的是,instanceof方法要求開發人員明確地確認對象為某種特定類型。

var oStringObject = new String('Hello World');alert(oStringObject instanceof String); // outputs "true"

6、Array數組

  字串、數值和布爾值都屬於離散值,如果某個變數是離散的,那麼在任意時刻及只能有一個值。如果想用一個變數來儲存一組值,就需要使用數組array。

  在JavaScript指令碼中,數組使用關鍵字Array來聲明,同時還可以指定這個數組元素的個數,也就是數組的長度(length)。

var aTeam = new Array(12);

  在無法提前預知某個數組元素最終的個數時,聲明數組時可以不指定具體個數。

var aColor = new Array();aColor[0] = "red";aColor[1] = "blue";aColor[2] = "purple";

  每增加一個數組項,數組的長度就動態地增長。

  另外還可以直接用參數建立數組。

var aMap = new Array{"China","USA"};

  與字串的length屬性一樣,數組也可以通過length屬性來擷取其長度,數組的位置也是從0開始的。

  除了Array()對象,數組還可以使用方括弧"["和"]"來定義,項與項之間用逗號分隔。

var aColor = ["red", "gray"];

  對於數組而言,通常需要將其轉化為字串再進行使用,toString()方法可以很方便的實現這個功能。

alert(aColor.toString());

  如果不希望用逗號進行轉換後的串連,而希望用指定的符號,可以用join()方法,該方法接受一個參數,即用來串連數組項的字串。

var sColor = aColor.join("|");

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.