js 基本類(lèi)型 引用類(lèi)型 和 基本包裝類(lèi)型

基本類(lèi)型:Undefined,Null,Boolean,Number,String
引用類(lèi)型:Object,Array,Date,RegExp等,一般是對(duì)象或者對(duì)象的子類(lèi)型醇蝴;
基本包裝類(lèi)型:Boolean,Number,String
如下~

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ā)生的拯爽。

//我們平常寫(xiě)程序的過(guò)程:
var str = 'hello'; //string 基本類(lèi)型
var s2 = str.charAt(0); //在執(zhí)行到這一句的時(shí)候 后臺(tái)會(huì)自動(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)型添加方法:

var str = 'hello';
str.number = 10; //假設(shè)我們想給字符串添加一個(gè)屬性number ,后臺(tái)會(huì)有如下步驟
{ 
 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ù)上面的步驟
{ 
 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ì)象都有原型鹏倘。

//給字符串添加方法  要寫(xiě)到對(duì)應(yīng)的包裝對(duì)象的原型下才行
var str = 'hello';
String.prototype.last= fuction(){ 
    return this.charAt(this.length);
}; 
str.last(); // 5 執(zhí)行到這一句,后臺(tái)依然會(huì)偷偷的干這些事
{ 
    var _str = new String('hello');// 找到基本包裝對(duì)象顽爹,new一個(gè)和字符串值相同的對(duì)象纤泵,
    _str.last();  // 通過(guò)這個(gè)對(duì)象找到了包裝對(duì)象下的方法并調(diào)用 
    _str =null; //  這個(gè)對(duì)象被銷(xiāo)毀
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市镜粤,隨后出現(xiàn)的幾起案子捏题,更是在濱河造成了極大的恐慌玻褪,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件公荧,死亡現(xiàn)場(chǎng)離奇詭異带射,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)循狰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)窟社,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人绪钥,你說(shuō)我怎么就攤上這事灿里。” “怎么了程腹?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵钠四,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我跪楞,道長(zhǎng)缀去,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任甸祭,我火速辦了婚禮缕碎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘池户。我一直安慰自己咏雌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布校焦。 她就那樣靜靜地躺著赊抖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寨典。 梳的紋絲不亂的頭發(fā)上氛雪,一...
    開(kāi)封第一講書(shū)人閱讀 52,394評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音耸成,去河邊找鬼报亩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛井氢,可吹牛的內(nèi)容都是我干的弦追。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼花竞,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼劲件!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤零远,失蹤者是張志新(化名)和其女友劉穎苗分,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體遍烦,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年躺枕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了服猪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拐云,死狀恐怖罢猪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叉瘩,我是刑警寧澤膳帕,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站薇缅,受9級(jí)特大地震影響危彩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泳桦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一汤徽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧灸撰,春花似錦谒府、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至债蓝,卻和暖如春壳鹤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饰迹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工器虾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蹦锋。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓兆沙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親莉掂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子葛圃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359