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

淺談javascript中基本包裝類型

 更新時(shí)間:2015年06月03日 11:18:01   投稿:hebedich  
在JavaScript中,和JAVA類似,也提供了對(duì)于基本數(shù)據(jù)類型的包裝類型。例如Number、Boolean、String類型。下面我們就來詳細(xì)探討下吧。

為了便于操作基本類型值,ECMAScript還提供了3個(gè)特殊的引用類型:Boolean、Number和String。這些類型與本章介紹的其他引用類型相似,但同時(shí)也具有與各自的基本類型相應(yīng)的特殊行為。實(shí)際上,每當(dāng)讀取一個(gè)基本類型值得時(shí)候,后臺(tái)就會(huì)創(chuàng)建一個(gè)對(duì)應(yīng)的基本包裝類型的對(duì)象,從而讓我們能夠調(diào)用一些方法來操作這些數(shù)據(jù)。如下例子:

復(fù)制代碼 代碼如下:

var s1="some text";
var s2=s1.substring(2);

  這個(gè)例子中的變量s1包含一個(gè)字符串,字符串當(dāng)然是基本類型值,而下一行代碼調(diào)用了s1的substring()方法,并將返回的結(jié)果保存在了s2中。我們知道,基本類型值不是對(duì)象,因而從邏輯上講它們不應(yīng)該有方法(盡管如我們所愿,它們確實(shí)有方法)。其實(shí),為了讓我們實(shí)現(xiàn)這種直觀的操作,后臺(tái)已經(jīng)自動(dòng)完成了一系列的處理。當(dāng)?shù)诙写a訪問s1時(shí),訪問過程處于一種讀取模式,也就是呀從內(nèi)存中讀取這個(gè)字符串的值。而在讀取模式中訪問字符串時(shí),后臺(tái)都會(huì)自動(dòng)完成下列處理。
1.創(chuàng)建String類型的一個(gè)實(shí)例;
2.在實(shí)例上調(diào)用指定的方法;
3.銷毀這個(gè)實(shí)例。

  可以將以上三個(gè)步驟想象成是執(zhí)行了下列ECMAScript代碼。

復(fù)制代碼 代碼如下:

var s1=new String("some text");
var s2=s1.substring(2);
s1=null;

  經(jīng)過此番處理,基本的字符串值就變得跟對(duì)象一樣了,而且,上面這三個(gè)步驟也分別適用于Boolean和Number類型對(duì)應(yīng)的布爾值和數(shù)字值。

  引用類型與基本包裝類型的主要區(qū)別就是對(duì)象的生存期。使用new操作符創(chuàng)建的引用類型的實(shí)例,在執(zhí)行流離開當(dāng)前作用域之前都一直保存在內(nèi)存中。而自動(dòng)創(chuàng)建的基本包裝類型的對(duì)象,則只存在于一行代碼的執(zhí)行瞬間,然后立即被銷毀。這意味著我們不能再運(yùn)行時(shí)為基本類型值添加屬性和方法。如下面例子:

復(fù)制代碼 代碼如下:

var s1="some text"
s1.color="red";
alert(s1.color);//undefined

  在此,第二行代碼試圖為字符串s1添加一個(gè)color屬性。但是,當(dāng)?shù)谌写a在此訪問s1時(shí),其color屬性不見了。問題的原因就是第二行創(chuàng)建的String對(duì)象在執(zhí)行第三行代碼時(shí)已經(jīng)被銷毀了。第三行代碼又創(chuàng)建自己的String對(duì)象,而該對(duì)象沒有color屬性。

  當(dāng)然,可以顯示的滴調(diào)用Boolean、Number和String來創(chuàng)建基本包裝類型的對(duì)象。不過,應(yīng)該在絕對(duì)必要的情況下再這樣做,因?yàn)檫@種做法很容易讓人分不清自己是在處理基本包裝類型還是引用基本包裝類型的值。對(duì)基本包裝類型的實(shí)例調(diào)用typeof會(huì)返回“object”,而且所有基本包裝類型的對(duì)象都會(huì)被轉(zhuǎn)換為布爾值true。

  Object構(gòu)造函數(shù)也會(huì)像工廠方法一樣,根據(jù)傳入值得類型返回相應(yīng)基本包裝類型的實(shí)例。例如:

復(fù)制代碼 代碼如下:

var obj=new Object("some text");
alert(obj instanceof String);//true

  把字符串傳給Object構(gòu)造函數(shù),就會(huì)創(chuàng)建String的實(shí)例;而傳入數(shù)值參數(shù)會(huì)得到Number的實(shí)例,傳入布爾值參數(shù)就會(huì)得到Boolean的實(shí)例。

  要注意的是,使用new調(diào)用基本包裝類型的構(gòu)造函數(shù),與直接調(diào)用同名的轉(zhuǎn)型函數(shù)是不一樣的。例如:

復(fù)制代碼 代碼如下:

var value="25";
var number=Number(value); //轉(zhuǎn)型函數(shù)
alert(typeof number); //"number"
var obj=new Number(value); //構(gòu)造函數(shù)
alert(typeof obj); //"object"

  在這個(gè)例子中,變量number中保存的是基本類型的值25,而變量obj中保存的是Number的實(shí)例。

  盡管我們不建議顯式的創(chuàng)建基本包裝類型的對(duì)象,但它們操作基本類型值的能力還是相當(dāng)重要的。而每個(gè)基本包裝類型都提供了操作相應(yīng)值的便捷方法。

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

相關(guān)文章

  • JS實(shí)現(xiàn)網(wǎng)頁時(shí)鐘特效

    JS實(shí)現(xiàn)網(wǎng)頁時(shí)鐘特效

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)網(wǎng)頁時(shí)鐘特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • JS數(shù)組Reduce方法功能與用法實(shí)例詳解

    JS數(shù)組Reduce方法功能與用法實(shí)例詳解

    這篇文章主要介紹了JS數(shù)組Reduce方法功能與用法,結(jié)合實(shí)例形式詳細(xì)分析了JS數(shù)組Reduce方法操作數(shù)組統(tǒng)計(jì)、去重等相關(guān)操作技巧,需要的朋友可以參考下
    2020-04-04
  • 淺談JS中的反柯里化( uncurrying)

    淺談JS中的反柯里化( uncurrying)

    本篇文章主要介紹了淺談JS中的反柯里化( uncurrying),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • 微信小程序?qū)崿F(xiàn)卡片層疊滑動(dòng)效果

    微信小程序?qū)崿F(xiàn)卡片層疊滑動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)卡片層疊滑動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • PHP實(shí)現(xiàn)的各種中文編碼轉(zhuǎn)換類分享

    PHP實(shí)現(xiàn)的各種中文編碼轉(zhuǎn)換類分享

    這篇文章主要介紹了PHP實(shí)現(xiàn)的各種中文編碼轉(zhuǎn)換類分享,本文類庫支持簡(jiǎn)體中文、繁體中文、GB2312、BIG5、UTF-8等多種格式之間的轉(zhuǎn)換,需要的朋友可以參考下
    2015-01-01
  • JavaScript實(shí)現(xiàn)簡(jiǎn)單音樂播放器

    JavaScript實(shí)現(xiàn)簡(jiǎn)單音樂播放器

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單音樂播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • JS跨域請(qǐng)求外部服務(wù)器的資源

    JS跨域請(qǐng)求外部服務(wù)器的資源

    這篇文章主要介紹了JS跨域請(qǐng)求外部服務(wù)器的資源,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-02-02
  • JavaScript對(duì)象學(xué)習(xí)小結(jié)

    JavaScript對(duì)象學(xué)習(xí)小結(jié)

    JavaScript 中的所有事物都是對(duì)象:字符串、數(shù)值、數(shù)組、函數(shù).幾乎用到的每個(gè)js都離不開它的js對(duì)象。此外,JavaScript 允許自定義對(duì)象,下面跟著小編學(xué)習(xí)javascript對(duì)象學(xué)習(xí)小結(jié),需要的朋友可以參考下
    2015-09-09
  • 基于JavaScript實(shí)現(xiàn)可搜索的表格

    基于JavaScript實(shí)現(xiàn)可搜索的表格

    在Web開發(fā)中,數(shù)據(jù)表格是常見的數(shù)據(jù)展示形式,這篇文章主要為大家詳細(xì)介紹了如何使用JavaScript來實(shí)現(xiàn)這個(gè)功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • js深拷貝和淺拷貝的深入講解

    js深拷貝和淺拷貝的深入講解

    深拷貝和淺拷貝是面試中經(jīng)常出現(xiàn)的,主要考察對(duì)基本類型和引用類型的理解深度,這篇文章主要給大家介紹了關(guān)于js深拷貝和淺拷貝的相關(guān)資料,需要的朋友可以參考下
    2022-05-05

最新評(píng)論