javascript之基本封裝類型

來源:互聯網
上載者:User

標籤:def   str   ase   關係   執行個體化   資料類型   分享   case   table   

基本封裝類型

基本封裝類型是特殊的參考型別。每當讀取一個基本類型值的時候,後台就會建立一個對應的基本封裝類型的對象,從而可以調用屬性、方法來進行後續操作。

ECMAScript還提供了三種基本封裝類型:Number、String、Boolean。

代碼現狀

我們經常寫類似這樣的代碼,基本類型的變數可以當做對象一樣調用屬性、方法,但這又不是一個真正的對象只是一個變數而已,那麼這是為什麼呢?

1    var str = "hello world";2     console.log(str.length);     // 113     console.log(str.toUpperCase());// HELLO WORLD

其實為了便於操作基礎資料型別 (Elementary Data Type)的值,JavaScript 中的基礎資料型別 (Elementary Data Type)的值會在後台建立一個對應的基本封裝類型對象,除了 null 和 undefined 所有的基本類型都有對應的封裝類型。

如上代碼,後台會自動完成下列的處理:

執行到第二行時:

  1. 建立 String 類型的一個執行個體;
  2. 在執行個體上調用指定的屬性;
  3. 銷毀這個執行個體;

執行到第三行時:

  1. 建立 String 類型的一個執行個體;
  2. 在執行個體上調用指定的方法;
  3. 銷毀這個執行個體;

可以將以上三個步驟想象成是執行了下列ECMAScript代碼:

1 // 執行到第二行時2 var str = new String("hello world");3 str.length;4 str = null;5 6 // 執行到第三行時7 var str = new String("hello world");8 str.toUpperCase();9 str = null;

這樣以上代碼中字串就變得跟對象一樣了,同理分別適用與Boolean、Number類型對應的基礎資料型別 (Elementary Data Type);

現在是不是明白原來這個這個基本封裝類型其實就是基礎資料型別 (Elementary Data Type)對應的類型

類型映射關係
string String
number Number
布爾類型(true、false) Boolean

注意:

並不是封裝類型提供了方法,而是javascript 引擎後台建立了對應基本封裝類型的執行個體(對象)

每當讀取一個基本類型值的時候,後台就會建立一個對應的基本封裝類型對象 如:

1 var str = new String("hello world");2  str.length;3  str = null;
 參考型別對象與基本封裝類型對象的區別

主要區別就是這兩種對象的生命週期不同。

通過以上代碼塊我們知道基本封裝類型自動建立的對象在對象被調用的時刻存在,調用完後就被銷毀了,而使用new關鍵字建立的參考型別的執行個體,對象在當前範圍都存在。

//基本封裝類型對象
1 var s=‘some‘;2 s.age=‘Joel‘;3 console.log(s.age);//undefined

如上代碼在給字串s添加age屬性,但是當代碼執行到第三行時name屬性已經被銷毀了,當代碼執行第三行時,又建立了一個String 執行個體,但是這個執行個體並沒有age屬性所以輸出undefined;

//顯示執行個體化封裝類型
1 var s=new String(‘some‘); 2 s.age=‘Joel‘; 3 console.log(s.age);//Joel
總結

1、每個基礎資料型別 (Elementary Data Type)都映射到同名的基本封裝類型(除了null、undefined)。
2、在讀取基本類型值時,就會建立對應的基本封裝類型對象,從而方便了資料操作。
3、操作基本封裝類的對象一經執行完畢,就會立即銷毀。

javascript之基本封裝類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.