欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript包裝對(duì)象使用詳解

 更新時(shí)間:2015年07月09日 09:05:58   投稿:hebedich  
javascript代碼運(yùn)行的過(guò)程中基本類型會(huì)找到對(duì)應(yīng)的包裝對(duì)象,然后包裝對(duì)象把所有的屬性和方法給了基本類型,然后包裝對(duì)象被系統(tǒng)進(jìn)行銷毀,所以理解了包裝對(duì)象可以很好的理解之前寫的代碼為什么可以這樣做了。

  JavaScript對(duì)象是一種復(fù)合值:它是屬性和已命名值的集合。通過(guò)"."符號(hào)來(lái)引用屬性值。當(dāng)屬性值是一個(gè)函數(shù)時(shí),稱為方法。

①一段你常用但卻未必明白其真正底層原理的代碼:

var s = "hello world!";
var word = s.substring(s.indexOf(" ")+1,s.length);
 

  如前面所說(shuō),這里變量s只是一個(gè)字符串原始類型,它怎么會(huì)有屬性(s.length)和方法(s.indexOf()、s.substring())呢?沒錯(cuò),這正跟我們正要介紹的包裝對(duì)象有關(guān)。原因是:只要引用了字符串s的屬性,JavaScript就會(huì)將字符串值通過(guò)調(diào)用new String(s)的方式轉(zhuǎn)換成對(duì)象,這個(gè)對(duì)象繼承了字符串(String)對(duì)象的方法,并被用來(lái)處理屬性的引用。一旦屬性引用結(jié)束,這個(gè)新創(chuàng)建的對(duì)象就會(huì)被銷毀。

  同字符串一樣,數(shù)字和布爾值也有各自的方法:通過(guò)Number()和Boolean()構(gòu)造函數(shù)創(chuàng)建一個(gè)臨時(shí)對(duì)象。存取字符串、數(shù)字或布爾值的屬性時(shí)創(chuàng)建的臨時(shí)對(duì)象就是包裝對(duì)象。5種原始類型中的剩余兩種null和undefined沒有包裝對(duì)象:訪問(wèn)它們的屬性會(huì)造成一個(gè)類型錯(cuò)誤(Uncaught TypeError)。明白了上面的代碼,那么再看如下代碼:

var s = "test";
s.len = 4;//給它設(shè)置一個(gè)屬性
var t = s.len;

  不認(rèn)真的同學(xué)這里就會(huì)認(rèn)為最后t就是等于4了。難道最后t不等于4嗎?是的,最后t的值是undefined。想知道為什么請(qǐng)看繼續(xù)看解析:原來(lái)以這里第二行代碼只是創(chuàng)建了一個(gè)臨時(shí)字符串對(duì)象,并給len屬性賦值為4,隨即銷毀這個(gè)對(duì)象。而第三行又是通過(guò)原始字符串s創(chuàng)建一個(gè)新字符串對(duì)象(這個(gè)不是第二行代碼創(chuàng)建的對(duì)象,第二行代碼創(chuàng)建的對(duì)象已經(jīng)被銷毀了)并嘗試讀取其len屬相,這個(gè)屬性自然不存在,因此表達(dá)式的結(jié)果為undefined。這段代碼說(shuō)明了在讀取字符串、數(shù)字和布爾值的屬性值或方法(實(shí)際上是它們對(duì)應(yīng)包裝對(duì)象的屬性值或方法)表現(xiàn)的像對(duì)象一樣。但如果你試圖給屬性賦值,則會(huì)忽略這個(gè)操作:修改只是發(fā)生在臨時(shí)對(duì)象身上,而這個(gè)臨時(shí)對(duì)象并不會(huì)繼續(xù)保留下來(lái)。

  注意:可通過(guò)String(),Number(),Boolean()構(gòu)造函數(shù)來(lái)顯示創(chuàng)建包裝對(duì)象:

var s = "test",n=1,b=true;//一個(gè)字符串、數(shù)字和布爾值
var S = new String(s);//一個(gè)字符串對(duì)象
var N = new Number(n);//一個(gè)數(shù)值對(duì)象
var B = new Boolean(b);//一個(gè)布爾對(duì)象

  JavaScript會(huì)在必要時(shí)將包裝對(duì)象轉(zhuǎn)換成原始值,因此上段代碼中的對(duì)象S、N和B常常但不總是表現(xiàn)的和值s、n和b一樣。"=="等于運(yùn)算符將原始值和其包裝對(duì)象視為相等,但“===”全等運(yùn)算將它們視為不等。通過(guò)typeof運(yùn)算符也可以看到原始值和其包裝對(duì)象的不同:

   ?、賢ypeof(s);  ->"string"
     typeof(S);  ->"object"
   ?、趖ypeof(n);  ->"string"
     typeof(N);  ->"object"
    ③typeof(b);  ->"string"
     typeof(B);  ->"object"

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • ES6中class類用法實(shí)例淺析

    ES6中class類用法實(shí)例淺析

    這篇文章主要介紹了ES6中class類用法,結(jié)合實(shí)例形式分析了ES6中類的實(shí)現(xiàn)方法與相關(guān)語(yǔ)法使用技巧,需要的朋友可以參考下
    2017-04-04
  • 深入淺析JavaScript中對(duì)事件的三種監(jiān)聽方式

    深入淺析JavaScript中對(duì)事件的三種監(jiān)聽方式

    最近這段時(shí)間因?yàn)槊刻煲薷木W(wǎng)站,為網(wǎng)站做特效,所以看了很多的js接觸事件,自己只會(huì)使用一小部分,有時(shí)用的時(shí)候也比較混亂,現(xiàn)在系統(tǒng)的整理了一下,本篇文章跟大家分享的是JavaScript中對(duì)事件的三種監(jiān)聽方式
    2015-09-09
  • Javascript技術(shù)難點(diǎn)之a(chǎn)pply,call與this之間的銜接

    Javascript技術(shù)難點(diǎn)之a(chǎn)pply,call與this之間的銜接

    這篇文章主要介紹了Javascript技術(shù)難點(diǎn)之a(chǎn)pply,call與this之間的銜接的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • JS實(shí)現(xiàn)點(diǎn)擊拉拽輪播圖pc端移動(dòng)端適配

    JS實(shí)現(xiàn)點(diǎn)擊拉拽輪播圖pc端移動(dòng)端適配

    本文通過(guò)實(shí)例代碼給大家介紹了JS點(diǎn)擊拉拽輪播圖pc端移動(dòng)端適配 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • 理解Javascript_01_理解內(nèi)存分配原理分析

    理解Javascript_01_理解內(nèi)存分配原理分析

    在正式開始之前,我想先說(shuō)兩句,理解javascript系列博文是通過(guò)帶領(lǐng)大家分析javascript執(zhí)行時(shí)的內(nèi)存分配情況,來(lái)解釋javascript原理,具體會(huì)涵蓋javascript預(yù)加載,閉包原理,面象對(duì)象,執(zhí)行模型,對(duì)象模型...,文章的視角很特別,也非常深入,希望大家能接受這種形式,并提供寶貴意見。
    2010-10-10
  • javascript寫的日歷類(基于pj)

    javascript寫的日歷類(基于pj)

    在網(wǎng)上搜索了一些用javascript寫的日歷類都不太令人滿意,主要是用了之后還要寫很多客戶端代碼,有空之余,自己動(dòng)手寫了一個(gè)。主要是推廣自己寫的js pr庫(kù)。
    2010-12-12
  • 原生js生成圖片驗(yàn)證碼

    原生js生成圖片驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了原生js生成圖片驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • js 判斷checkbox是否選中的實(shí)現(xiàn)代碼

    js 判斷checkbox是否選中的實(shí)現(xiàn)代碼

    大家在很多場(chǎng)合也許會(huì)遇到判斷頁(yè)面是否有元素選中,下面介紹的是利用js判斷是否選中CheckBox的方法。
    2010-11-11
  • 微信小程序?qū)崿F(xiàn)書架小功能

    微信小程序?qū)崿F(xiàn)書架小功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)書架小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • js改變img標(biāo)簽的src屬性在IE下沒反應(yīng)的解決方法

    js改變img標(biāo)簽的src屬性在IE下沒反應(yīng)的解決方法

    在Chrome FF里都能改變成功,但在IE下卻不行,網(wǎng)上搜了半天,大概了解了,這個(gè)是IE的一個(gè)bug,具體的解決方法如下,有類似問(wèn)題的朋友可以參考下哈,希望對(duì)大家有所幫助
    2013-07-07

最新評(píng)論