成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js 中的基本類型,引用類型,基本包裝類型

kun_jian / 2726人閱讀

摘要:基本類型引用類型等,說白了就是對象。。?;景b類型如下基本類型毫無疑問上面的是一個基本類型,但是它卻能召喚出一個的方法,這是什么原因呢主要是因為在基本類型中,有三個比較特殊的存在就是,這三個基本類型都有自己對應的包裝對象。

基本類型:Undefined,Null,Boolean,Number,String
引用類型:Object,Array,Date,RegExp等,說白了就是對象。。。
基本包裝類型:Boolean,Number,String

如下~

var str = "hello"; //string 基本類型
var s2 = str.charAt(0);
alert(s2); // h

毫無疑問上面的string是一個基本類型,但是它卻能召喚出一個 charAt() 的方法,這是什么原因呢?
主要是因為在基本類型中,有三個比較特殊的存在就是:String Number Boolean,這三個基本類型都有自己對應的包裝對象。并且隨時等候召喚。包裝對象呢,其實就是對象,有相應的屬性和方法。至于這個過程是怎么發(fā)生呢,其實是在后臺偷偷發(fā)生的。

//我們平常寫程序的過程:
var str = "hello"; //string 基本類型
var s2 = str.charAt(0); //在執(zhí)行到這一句的時候 后臺會自動完成以下動作 :
( 
 var _str = new String("hello"); // 1 找到對應的包裝對象類型,然后通過包裝對象創(chuàng)建出一個和基本類型值相同的對象
 var s2 = _str.chaAt(0); // 2 然后這個對象就可以調(diào)用包裝對象下的方法,并且返回結(jié)給s2.
 _str = null;  //    3 之后這個臨時創(chuàng)建的對象就被銷毀了, str =null; 
 ) 
alert(s2);//h 
alert(str);//hello    

注意這是一瞬間的動作 實際上我們沒有改變字符串本身的值。就是做了下面的動作.這也是為什么每個字符串具有的方法并沒有改變字符串本身的原因。

由此我們可以知道,引用類型和基本包裝對象的區(qū)別在于:生存期
引用類型所創(chuàng)建的對象,在執(zhí)行的期間一直在內(nèi)存中,而基本包裝對象只是存在了一瞬間。

所以我們無法直接給基本類型添加方法:

var str = "hello";
str.number = 10; //假設我們想給字符串添加一個屬性number ,后臺會有如下步驟
{ 
 var _str = new String("hello"); // 1 找到對應的包裝對象類型,然后通過包裝對象創(chuàng)建出一個和基本類型值相同的對象
  _str.number = 10; // 2 通過這個對象調(diào)用包裝對象下的方法 但結(jié)果并沒有被任何東西保存
 _str =null; // 3 這個對象又被銷毀
 }
alert(str.number); //undefined  當執(zhí)行到這一句的時候,因為基本類型本來沒有屬性,后臺又會重新重復上面的步驟
{ 
 var str = new String("hello"); // 1 找到基本包裝對象,然后又新開辟一個內(nèi)存,創(chuàng)建一個值為hello對象
 str.number = undefined   // 2 因為包裝對象下面沒有number這個屬性,所以又會重新添加,因為沒有值,所以值是未定義;然后彈出結(jié)果
 str =null; // 3 這個對象又被銷毀
 }

那么我們怎么才能給基本類型添加方法或者屬性呢?
答案是在基本包裝對象的原型下面添加,每個對象都有原型。

//給字符串添加方法  要寫到對應的包裝對象的原型下才行
var str = "hello";
String.prototype.last= fuction(){ 
    return this.charAt(this.length);
}; 
str.last(); // 5 執(zhí)行到這一句,后臺依然會偷偷的干這些事
{ 
    var _str = new String("hello");// 找到基本包裝對象,new一個和字符串值相同的對象,
    _str.last();  // 通過這個對象找到了包裝對象下的方法并調(diào)用 
    _str =null; //  這個對象被銷毀
}

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/92811.html

相關文章

  • js基本類型、引用類型、包裝類型

    摘要:每當讀取這個基本類型時,后臺會創(chuàng)建一個對應的基本包裝類型的對象。類型判斷主要是用來判斷基本數(shù)據(jù)類型返回類型新增所以只能用來判斷基本數(shù)據(jù)類型。引用類型基本包裝類型都會返回。 最近重溫JS高程設計以及與朋友的討論。決定趁熱打鐵記錄JS的各種類型,并做下深入總結(jié)。 js的幾種類型 基本類型:Boolean、String、Number、Null、Undefined 引用類型: 2.1 O...

    liangzai_cool 評論0 收藏0
  • JS中,基本數(shù)據(jù)類型、引用類型基本包裝類型

    摘要:例子中,屬于基本類型對象。基本數(shù)據(jù)類型和引用類型作方法入?yún)r的差異通常,在函數(shù)調(diào)用時,如果入?yún)榛緮?shù)據(jù)類型時,函數(shù)的參數(shù)將以值傳遞的方式傳遞。 前言:再次翻閱JS高程(第3版)過程中,看到了基本包裝類型,趁熱留下此文,對JS的數(shù)據(jù)類型做個較為深入的小結(jié)(2018-10-19)。 雖然JS與其他強類型語言不一樣,聲明中無需預設數(shù)據(jù)類型,但是JS也是有數(shù)據(jù)類型區(qū)分的。 基本數(shù)據(jù)類型(...

    Tychio 評論0 收藏0
  • 輕松理解JS基本包裝對象

    摘要:今天來討論一下中的基本包裝對象也叫基本包裝類型,之前剛學到這里的時候,自己也是一頭霧水,不明白這個基本包裝對象到底是個什么鬼,后來找了很多資料,終于看清了它的真面目?;绢愋鸵妙愋偷?,說白了就是對象。。。 今天來討論一下JS中的基本包裝對象(也叫基本包裝類型),之前剛學到這里的時候,自己也是一頭霧水,不明白這個基本包裝對象到底是個什么鬼,后來找了很多資料,終于看清了它的真面目。首先呢...

    seal_de 評論0 收藏0
  • js 中的數(shù)據(jù)類型

    摘要:來自你不知道的對未初始化和未聲明的變量執(zhí)行操作符都返回了值類型是第二個只有一個值的數(shù)據(jù)類型,這個特殊的值是。 基本類型 主要有:undefined、null、布爾值(Boolean)、字符串(String)、數(shù)值(Number)、Symbol undefined 在使用 var,let,const 聲明變量但未對其加以初始化時,這個變量的值就是undefined 注意點: ...

    Jensen 評論0 收藏0
  • 基本數(shù)據(jù)類型引用類型的區(qū)別詳解

    摘要:前兩天看到大神的關于基本數(shù)據(jù)類型和引用類型的區(qū)別的文章覺得寫得非常不錯,就想著在其基礎上加上自己平時看到的一些知識點和理解,所以就有了以下的文章基本數(shù)據(jù)類型基本數(shù)據(jù)類型包括基本數(shù)據(jù)類型是按值訪問的,就是說我們可以操作保存在變量中的實際的值基 前兩天看到kraaas大神的關于基本數(shù)據(jù)類型和引用類型的區(qū)別的文章覺得寫得非常不錯,就想著在其基礎上加上自己平時看到的一些知識點和理解,所以就有了...

    CoffeX 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<