javaScript對象-基本包裝類型的詳解

本人按書上的內容大體地把javaScript對象劃分紅「引用類型」、「基本包裝類型」和「內置對象」三塊內容。java

咱們這篇先了解下基本包裝類型的詳細用法吧!數據結構

1、咱們先解下相關概念:函數

一、引用類型的值(對象)是一個引用類型的一個實例。學習

  在ECMAScript中,引用類型是一種數據結構,用於將數據和功能組織在一塊兒。它也一般稱爲類。this

  儘管ECMASript中,從技術上講是一門面向對象的語言,但它不具有傳統的面嚮對象語言所支持的類和接口等基本結構。引用類型有時候也被稱爲對象定義,由於它們描述是一類對象所具備的屬性和方法。spa

  爲了便於操做基本數據類型,ECMAScript還提供了3個特殊的引用數據類型:Boolean、Number和String。prototype

  在實際中咱們每讀取一個基本數據值的時候,後臺就會建立一個對應的基本包裝類型對象,從而讓咱們可以調用一些方法操做這些數據。code

  如如下示例:對象

  var s1 = "some text";blog

  var s2 = s1.substring(2);

  猜猜後臺會作什麼樣的事情,走,咱們一塊兒來看看:

  一、String類型的一個實例;

  二、在實例中調用指定的方法;

  三、銷燬這個實例。

  能夠將以上三個步驟想像成是執行如下ECMAStript代碼。

  var s1 = new String("some text");

  var s2 = s1.substring(2);

  s1 = null;

  引用類型與基本包裝類型的區別:

  它們的對象生命週期不一樣:

    • 引用類型:使用new建立引用類型的實例,在執行數據流離開當前做用域時會一直存儲在內存中。
    • 基本包裝類型:自動建立基本包裝類型的對象,只執行一行代碼的瞬間以後就會當即銷燬。

    這意味着在運行時爲基本包裝類型值添加屬性和方法是無效的。

2、走起,一塊兒學習下基本包裝類型的詳細用法。

一、boolean  布爾對象類型

boolean對象用於轉換一個不是Boolean類型的值轉換爲Boolean類型值(true或者false)。

  1.1  建立Boolean對象

      boolean對象表明兩個值:「true」或者"false"

      下面的代碼定義了一個名爲myBoolean的布爾對象

      var myBoolean = new Boolean ();

      若是布爾對象無初始值或者其值爲:

      • 0
      • -0
      • null
      • ""
      • false
      • undefined
      • NaN

       那麼對象的值爲false.不然,其值爲true(即便當自變量爲字符串"false"時)!

  1.2  boolean對象屬性

      1.2.1  constructor屬性

           語法:

           boolean.constructor

           定義和用法:

           constructor屬性返回建立布爾對象的函數原型(即返回建立此對象的boolean函數的引用)。

           相關示例:

           返回經過myvar對象的原型建立的函數:

           var myvar = new boolean(1);

           myvar.constructor;

           結果輸出:

           function Boolean (){ [native code]}

      1.2.2  boolean prototype構造器

           語法:

           Boolean.prototype.name=value;

           定義和用法:

           prototypen屬性使您有能力向對象添加屬性和方法。

           當構造一個原型,全部的布爾對象默認都添加屬性或方法。

            注意:Boolean.prototype不是引用布爾值,但Boolean()對象是。

           注意: Prototype是一個全局屬性,這對於幾乎所有的javaScript對象。

           相關示例:

           Boolean.prototype.myColor=function ()

           {

             if (this.valueof()==true)

              {

                this.color="green";

              } else

              {

                this.color="red";

              }

           } 

           建立一個Boolean對象,並添加myColor方法:

           var a = new Boolean(1);

           a.,yColor();

           var b=a.color;

           結果輸出:

           green

   1.3  boolean對象方法

        1.3.1 toString()方法

          語法:

          boolean.toString()

          定義和用法:

          toString() 方法可把一個邏輯值轉換爲字符串,並返回結果(true或false)。

          注意:當須要把boolean對象轉換成字符串的狀況,javaScript會自動調用此方法。

       1.3.2 valueOf()方法

          語法:

          boolean.valueOf()

          定義和用法:

          valueOf()方法可返回Boolean對象的原始值(true 或 false)。

          相關示例:

          返回Boolean 對象的原始值:

          var bool = new Boolean (0).

          var myvar = bool.valueOf();

          myvar輸出結果:

          false

二、number  數字對象類型

      Number對象是原始數值的包裝對象。

      Number建立方式 new Number().

      語法:

      var num = new Number(value);

   2.1  number對象屬性

     2.1.1   constructor屬性

             語法:

             number.constructor;

             定義和用法:

             constructor屬性返回建立此對象的boolean函數的引用.

             相關示例:

             返回對建立此對象的number函數的引用:

             num.constructor;

             輸出結果:

             function Number () {[native code]}

     2.1.2   MAX_VALUE屬性

            語法:

             Number.MAX_VALUE;

            定義和用法

            MAX_VALUE屬性是javaScript中可表示的最大的的數。

            它的近似值爲1.7976931348623157 x 10308

           注意:大於MAX_VALUE的數表示無窮大。

           相關示例:

           示例1

           返回javaScript中的最大的數:

           Number.MAX_VALUE;

           返回值:

           1.7976931348623157e+308

           因爲MAX_VALUE爲Number對象的屬性,因此可使用Number.MAX_VALUE調用。

           使用本身建立的xNumber對象(x.MAX_VALUE)將沒法獲取。

           示例2

             MAX_VALUE是javaScript Number對象的靜態屬性,只能經過Number.MAX_VALUE調用。

            使用自定義的Numberx(x.MAX_VALUE)將沒法獲取MAX_VALUE屬性;

            var x = 100;

            x.MAX_VALUE;

            x輸出結果:

            undefined

三、string     字符串對象類型

相關文章
相關標籤/搜索