成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

輕松理解JS基本包裝對(duì)象

seal_de / 2791人閱讀

摘要:今天來(lái)討論一下中的基本包裝對(duì)象也叫基本包裝類(lèi)型,之前剛學(xué)到這里的時(shí)候,自己也是一頭霧水,不明白這個(gè)基本包裝對(duì)象到底是個(gè)什么鬼,后來(lái)找了很多資料,終于看清了它的真面目?;绢?lèi)型引用類(lèi)型等,說(shuō)白了就是對(duì)象。。。

今天來(lái)討論一下JS中的基本包裝對(duì)象(也叫基本包裝類(lèi)型),之前剛學(xué)到這里的時(shí)候,自己也是一頭霧水,不明白這個(gè)基本包裝對(duì)象到底是個(gè)什么鬼,后來(lái)找了很多資料,終于看清了它的真面目。首先呢,我們現(xiàn)在復(fù)習(xí)一下JS的數(shù)據(jù)類(lèi)型,JS數(shù)據(jù)類(lèi)型被分為了兩大門(mén)派,基本類(lèi)型和引用類(lèi)型。

 基本類(lèi)型:`Undefined`,`Null`,`Boolean`,`Number`,`String`

 引用類(lèi)型:`Object`,`Array`,`Date`,`RegExp`等,說(shuō)白了就是對(duì)象。。。

我們都知道,引用類(lèi)型有方法和屬性,但是基本類(lèi)型是木有的,但是你一定見(jiàn)過(guò)這樣的代碼

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

毫無(wú)疑問(wèn)上面的string是一個(gè)基本類(lèi)型,但是它卻能召喚出一個(gè)charAt()的方法,這是什么原因呢?

主要是因?yàn)樵诨绢?lèi)型中,有三個(gè)比較特殊的存在就是:String Number Boolean,這三個(gè)基本類(lèi)型都有自己對(duì)應(yīng)的包裝對(duì)象。并且隨時(shí)等候召喚。包裝對(duì)象呢,其實(shí)就是對(duì)象,有相應(yīng)的屬性和方法。至于這個(gè)過(guò)程是怎么發(fā)生呢,其實(shí)是在后臺(tái)偷偷發(fā)生的。

來(lái)看個(gè)栗子

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

alert(s2);//h 
alert(str);//hello     注意這是一瞬間的動(dòng)作 實(shí)際上我們沒(méi)有改變字符串本身的值。就是做了下面的動(dòng)作.這也是為什么每個(gè)字符串具有的方法并沒(méi)有改變字符串本身的原因。

由此我們可以知道,引用類(lèi)型和基本包裝對(duì)象的區(qū)別在于:生存期

引用類(lèi)型所創(chuàng)建的對(duì)象,在執(zhí)行的期間一直在內(nèi)存中,而基本包裝對(duì)象只是存在了一瞬間。

所以我們無(wú)法直接給基本類(lèi)型添加方法:

舉個(gè)栗子

var str = "hello";
str.number = 10; //假設(shè)我們想給字符串添加一個(gè)屬性number ,后臺(tái)會(huì)有如下步驟
// 相當(dāng)于
{ 
 var str = new String("hello"); // 1 找到對(duì)應(yīng)的包裝對(duì)象類(lèi)型,然后通過(guò)包裝對(duì)象創(chuàng)建出一個(gè)和基本類(lèi)型值相同的對(duì)象
  str.number = 10; // 2 通過(guò)這個(gè)對(duì)象調(diào)用包裝對(duì)象下的方法 但結(jié)果并沒(méi)有被任何東西保存
 str =null; // 3 這個(gè)對(duì)象又被銷(xiāo)毀
 }


alert(str.number); //undefined  當(dāng)執(zhí)行到這一句的時(shí)候,因?yàn)榛绢?lèi)型本來(lái)沒(méi)有屬性,后臺(tái)又會(huì)重新重復(fù)上面的步驟

//相當(dāng)于
{ 
 var str = new String("hello"); // 1 找到基本包裝對(duì)象,然后又新開(kāi)辟一個(gè)內(nèi)存,創(chuàng)建一個(gè)值為hello對(duì)象
 str.number = undefined   // 2 因?yàn)榘b對(duì)象下面沒(méi)有number這個(gè)屬性,所以又會(huì)重新添加,因?yàn)闆](méi)有值,所以值是未定 ;然后彈出結(jié)果
 str =null; // 3 這個(gè)對(duì)象又被銷(xiāo)毀
 }

那么我們?cè)趺床拍芙o基本類(lèi)型添加方法或者屬性呢?

答案是在基本包裝對(duì)象的原型下面添加,每個(gè)對(duì)象都有原型。

來(lái)看個(gè)栗子

//給字符串添加方法  要寫(xiě)到對(duì)應(yīng)的包裝對(duì)象的原型下才行
var str = "hello";
String.prototype.last= fuction(){ 
    return this.charAt(this.length);
}; 
str.last(); // 5 執(zhí)行到這一句,后臺(tái)依然會(huì)偷偷的干這些事


//相當(dāng)于
{ 
    var str = new String("hello");// 找到基本包裝對(duì)象,new一個(gè)和字符串值相同的對(duì)象,
    str.last();  // 通過(guò)這個(gè)對(duì)象找到了包裝對(duì)象下的方法并調(diào)用 
    str =null; //  這個(gè)對(duì)象被銷(xiāo)毀
}

看注釋相信能看出創(chuàng)建在基本包裝對(duì)象原型下面的方法和屬性才能被保存。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/102101.html

相關(guān)文章

  • JS中數(shù)據(jù)類(lèi)型、內(nèi)置對(duì)象包裝類(lèi)型對(duì)象、typeof關(guān)系

    摘要:平時(shí)在復(fù)習(xí)基礎(chǔ)知識(shí)時(shí),經(jīng)常會(huì)遇到數(shù)據(jù)類(lèi)型基礎(chǔ)數(shù)據(jù)類(lèi)型內(nèi)置對(duì)象包裝類(lèi)型對(duì)象,檢測(cè)數(shù)據(jù)類(lèi)型時(shí),用到的值,感覺(jué)都差不多,但是又有差異。值與數(shù)據(jù)類(lèi)型關(guān)系對(duì)比下圖,即可知值相較于基礎(chǔ)數(shù)據(jù)類(lèi)型少多 平時(shí)在復(fù)習(xí)JS基礎(chǔ)知識(shí)時(shí),經(jīng)常會(huì)遇到JS數(shù)據(jù)類(lèi)型、基礎(chǔ)數(shù)據(jù)類(lèi)型、內(nèi)置對(duì)象、包裝類(lèi)型對(duì)象,檢測(cè)數(shù)據(jù)類(lèi)型時(shí),用到的typeof值,感覺(jué)都差不多,但是又有差異。今天特地整理下,方便理解。 JS數(shù)據(jù)類(lèi)型 基礎(chǔ)數(shù)...

    OldPanda 評(píng)論0 收藏0
  • 前端知識(shí)點(diǎn)整理(待續(xù))

    摘要:知識(shí)點(diǎn)閉包問(wèn)題執(zhí)行機(jī)制定時(shí)器線程理解構(gòu)造函數(shù)內(nèi)的方法與構(gòu)造函數(shù)屬性上方法的對(duì)比中都經(jīng)歷了什么深入理解中的屬性和特性中的方法詳解為什么編程語(yǔ)言的都要定義數(shù)據(jù)類(lèi)型中與的區(qū)別輕松理解基本包裝對(duì)象中數(shù)據(jù)類(lèi)型內(nèi)置對(duì)象包裝類(lèi)型對(duì)象關(guān)系基礎(chǔ)之?dāng)?shù)組中的邏輯 JS知識(shí)點(diǎn) JS hoist JS閉包問(wèn)題 JS執(zhí)行機(jī)制 JS定時(shí)器線程理解 構(gòu)造函數(shù)內(nèi)的方法與構(gòu)造函數(shù)prototype屬性上方法的對(duì)比 JS...

    silencezwm 評(píng)論0 收藏0
  • 面試知識(shí)點(diǎn)總結(jié)

    摘要:最近面試幾家前端職位,想知道目前的前端面試題是偏向哪一塊,都主要問(wèn)到的是語(yǔ)法,閉包,原型鏈,繼承那一塊。并且將面試題的知識(shí)點(diǎn)匯總一下。參考網(wǎng)站面試題圖片過(guò)多的時(shí)候如何優(yōu)化圖標(biāo)很多的時(shí)候可以用雪碧圖圖片過(guò)大時(shí)候可以壓縮一下。 最近面試幾家前端職位,想知道目前的前端面試題是偏向哪一塊,都主要問(wèn)到的是ES6語(yǔ)法,閉包,原型鏈,繼承那一塊。并且將面試題的知識(shí)點(diǎn)匯總一下。有助于下次面試。 1.H...

    王晗 評(píng)論0 收藏0
  • 面試知識(shí)點(diǎn)總結(jié)

    摘要:最近面試幾家前端職位,想知道目前的前端面試題是偏向哪一塊,都主要問(wèn)到的是語(yǔ)法,閉包,原型鏈,繼承那一塊。并且將面試題的知識(shí)點(diǎn)匯總一下。參考網(wǎng)站面試題圖片過(guò)多的時(shí)候如何優(yōu)化圖標(biāo)很多的時(shí)候可以用雪碧圖圖片過(guò)大時(shí)候可以壓縮一下。 最近面試幾家前端職位,想知道目前的前端面試題是偏向哪一塊,都主要問(wèn)到的是ES6語(yǔ)法,閉包,原型鏈,繼承那一塊。并且將面試題的知識(shí)點(diǎn)匯總一下。有助于下次面試。 1.H...

    CrazyCodes 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<