国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript標(biāo)準(zhǔn)庫(kù)系列——三大包裝對(duì)象(四)

sean / 2030人閱讀

摘要:目錄導(dǎo)語(yǔ)包裝對(duì)象的理解三大包裝對(duì)象的知識(shí)點(diǎn)小結(jié)導(dǎo)語(yǔ)包裝對(duì)象是為了彌補(bǔ)基本數(shù)據(jù)類型的非對(duì)象特性而產(chǎn)生的,對(duì)于基本類型值而言,本來是不存在屬性和方法的,但是我們可以在使用字面量創(chuàng)建字符串時(shí),調(diào)用例如的方法,那么其內(nèi)在原理究竟是什么呢閱讀完本篇文

目錄 導(dǎo)語(yǔ) 1. 包裝對(duì)象的理解 2. 三大包裝對(duì)象的知識(shí)點(diǎn) 3. 小結(jié) 導(dǎo)語(yǔ)

包裝對(duì)象是為了彌補(bǔ)基本數(shù)據(jù)類型的非對(duì)象特性而產(chǎn)生的,對(duì)于基本類型值而言,本來是不存在屬性和方法的,但是我們可以在使用字面量創(chuàng)建字符串時(shí),調(diào)用例如"hello".concat(" world")的方法,那么其內(nèi)在原理究竟是什么呢?
閱讀完本篇文章,相信你能找到答案。

1. 包裝對(duì)象的理解

包裝對(duì)象指的是數(shù)據(jù)類型為NumberStringBoolean的值對(duì)應(yīng)的原生對(duì)象;
三大包裝對(duì)象能力在于:

能夠?qū)⑸鲜龌绢愋椭蛋b成真正的對(duì)象,從而體現(xiàn)JavaScript語(yǔ)言一切皆對(duì)象的特點(diǎn);

是字面量使用對(duì)應(yīng)包裝對(duì)象的方法的內(nèi)在原理;

是進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換的利器;

1.1 三大包裝對(duì)象及其字面量

基本數(shù)據(jù)類型我們可以直接采用字面量的形式創(chuàng)建:

var num = 1,str = "hello",bool = true;

也可以采用對(duì)應(yīng)包裝對(duì)象的形式創(chuàng)建:

var num = new Number(1),str = new String("hello"),bool = new Boolean(true)

二者區(qū)別在于前者是基本數(shù)據(jù)類型,后者是屬于對(duì)象的引用數(shù)據(jù)類型;

二者的聯(lián)系在于:

通過對(duì)象的valueOf()方法可以獲取其基本類型值;

字面量可直接調(diào)用包裝對(duì)象的實(shí)例的方法;

其原理在于每次基本類型字面量在調(diào)用包裝對(duì)象實(shí)例的方法時(shí),首先創(chuàng)建對(duì)于包裝對(duì)象的實(shí)例,然后在實(shí)例上調(diào)用該方法,最后銷毀該實(shí)例,即

var str = "hello world";
str.split(" ")
等價(jià)于
var str = new String("hello world")
str.split(" ")
str = null;

所以,每當(dāng)為字面量賦屬性值時(shí)是無效的,因?yàn)槊看巫置媪空{(diào)用完包裝對(duì)象實(shí)例的方法后都會(huì)銷毀實(shí)例;
關(guān)于更多包裝對(duì)象的實(shí)例屬性和方法詳見下文;

1.2 Object對(duì)象與三大包裝對(duì)象的關(guān)系

《JavaScript標(biāo)準(zhǔn)庫(kù)系列——Object對(duì)象和Array對(duì)象(一)》一文中,小羊曾提到Object是其他一切對(duì)象的構(gòu)造函數(shù),所以三大包裝對(duì)象的實(shí)例都可以由Object來構(gòu)造;

var num = new Object(1);等價(jià)于 new Number(1)
var str = new Object("hello");new String("hello")
var bool = new Object(true);new Booleab(true)


Object構(gòu)造函數(shù)根據(jù)傳入?yún)?shù)的數(shù)據(jù)類型返回相應(yīng)的基本包裝類型的實(shí)例;

2. 三大包裝對(duì)象的知識(shí)點(diǎn)
2.1 包裝對(duì)象直接作為工具方法

包裝對(duì)象直接作為工具方法實(shí)現(xiàn)到不同類型數(shù)據(jù)之間的類型轉(zhuǎn)換作用,詳見《JavaScript數(shù)據(jù)類型(四)》一文;

2.2 包裝對(duì)象的實(shí)例方法

繼承自O(shè)bject對(duì)象的valeOf()和toString()方法
這兩個(gè)方法繼承自O(shè)bject對(duì)象,經(jīng)常在使用字面量與其他類型數(shù)據(jù)進(jìn)行運(yùn)算時(shí)調(diào)用,例如:


這里順帶講一下+運(yùn)算符的原理:

先自動(dòng)轉(zhuǎn)成原始類型的值(即先執(zhí)行該對(duì)象的valueOf
方法,如果結(jié)果還不是原始類型的值,再執(zhí)行toString

方法;如果對(duì)象是Date實(shí)例,則先執(zhí)行toString
方法);

兩個(gè)運(yùn)算子都是原始類型的值以后,只要有一個(gè)運(yùn)算子是字符串,則兩個(gè)運(yùn)算子都轉(zhuǎn)為字符串,執(zhí)行字符串連接運(yùn)算;

否則,兩個(gè)運(yùn)算子都轉(zhuǎn)為數(shù)值,執(zhí)行加法運(yùn)算;
來自阮一峰《JavaScript 標(biāo)準(zhǔn)參考教程》;

1+str1+obj1+bool為例:
1+str加法運(yùn)算符兩側(cè)的運(yùn)算子包含字符串,采用字符串拼接方法;
1+obj加法運(yùn)算符兩側(cè)的運(yùn)算子包含對(duì)象,先采用valueOf()方法,發(fā)現(xiàn)還是對(duì)象,在調(diào)用toString()方法得到"[object Object]",然后進(jìn)行字符串拼接;
1+bool發(fā)現(xiàn)其中一個(gè)運(yùn)算子是布爾值直接使用Number()進(jìn)行包裝;

源自包裝對(duì)象實(shí)例的方法
三大包裝對(duì)象中String對(duì)象的實(shí)例方法相對(duì)來說比較重要,這里重點(diǎn)講一下,其他兩個(gè)可以參考阮一峰的教程;

字符方法

charAt():返回指定位置的字符;

charCodeAt():返回給定位置字符的Unicode碼


類數(shù)組方法

length:返回字符串的長(zhǎng)度;

concat:合并字符串,返回新字符串,不改變?cè)址?br>slice:提取字符串,第一個(gè)參數(shù)是子字符串的開始位置,第二個(gè)參數(shù)是子字符串的結(jié)束位置(不含該位置),返回子字符串,不改變?cè)址?br>substr:提取字符串,第一個(gè)參數(shù)是子字符串的開始位置,第二個(gè)參數(shù)是子字符串的長(zhǎng)度,返回子字符串,不改變?cè)址?/p>

格式化方法

toUpperCase:將字符串變大寫

toLowerCase:將字符串變小寫
trim:去除字符串前后的空格

檢索相關(guān)方法

match:傳入一個(gè)參數(shù),若原字符串匹配參數(shù)則返回匹配的符串?dāng)?shù)組;

replace:可傳兩個(gè)參數(shù),第一個(gè)為檢索表達(dá)式,第二個(gè)為替換值;
更多詳見《JavaScript標(biāo)準(zhǔn)庫(kù)系列——RegExp對(duì)象(三)》

var str = "hello world"
str.split(" ").map(function(ele){
  return ele.replace(/^w/,function(match){
    return match.toUpperCase()
  })
}).join(" ")
//"Hello World"

split()方法

split:按照給定的參數(shù)去分割字符串,和數(shù)組的join是互為逆方法;

小結(jié)

通過全文的瀏覽,我們了解到:

包裝對(duì)象是三大原始類型數(shù)據(jù)Number、String和Boolean對(duì)于的原生對(duì)象;

三大包裝對(duì)象在JavaScript中的作用主要是能將三大基本數(shù)據(jù)類型也包裝成對(duì)象,從而體現(xiàn)JavaScript一切皆對(duì)象的特性;是字面量調(diào)用對(duì)應(yīng)實(shí)例方法的內(nèi)在原理;是進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換的利器;

通過new+包裝對(duì)象方法能夠創(chuàng)建不同的包裝對(duì)象實(shí)例,調(diào)用其valueOf()方法就可以得到對(duì)應(yīng)的原始類型值;同時(shí)也可以通過Object對(duì)象去構(gòu)造對(duì)應(yīng)的包裝對(duì)象;

包裝對(duì)象的使用既可以作為工具方法,起到數(shù)據(jù)類型轉(zhuǎn)換作用;又可以創(chuàng)建實(shí)例,從而實(shí)例可以調(diào)用部署在對(duì)應(yīng)包裝對(duì)象原型上的方法;

valueOf()和toString()是三大包裝對(duì)象實(shí)例的共有方法,在進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換時(shí)會(huì)派上用場(chǎng);

本文主要講解了關(guān)于String包裝對(duì)實(shí)例的方法,包括字符方法、類數(shù)組方法、格式化方法、檢索方法和split方法;

參考資料

《JavaScript高級(jí)程序設(shè)計(jì)(第3版)》

《JavaScript標(biāo)準(zhǔn)參考教程》——阮一峰

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

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

相關(guān)文章

  • JavaScript標(biāo)準(zhǔn)庫(kù)系列——Object對(duì)象和Array對(duì)象(一)

    摘要:目錄導(dǎo)語(yǔ)對(duì)象對(duì)象小結(jié)導(dǎo)語(yǔ)本系列文章將重點(diǎn)講解提供的原生庫(kù)標(biāo)準(zhǔn)庫(kù),只要在支持語(yǔ)言的平臺(tái),標(biāo)準(zhǔn)庫(kù)中的提供的對(duì)象的屬性和方法都能使用對(duì)象對(duì)象的理解講的標(biāo)準(zhǔn)庫(kù),首先要從對(duì)象談起,因?yàn)橹蟮乃袑?duì)象都可以看做是對(duì)象構(gòu)造出來的因此,對(duì)象可以看做是一個(gè)構(gòu) 目錄 導(dǎo)語(yǔ) 1. Object對(duì)象 2. Array對(duì)象 3. 小結(jié) 導(dǎo)語(yǔ) 本系列文章將重點(diǎn)講解JavaScript提供的原生庫(kù)——標(biāo)準(zhǔn)庫(kù),只要...

    Scholer 評(píng)論0 收藏0
  • 標(biāo)準(zhǔn)庫(kù)(七)包裝對(duì)象math

    摘要:靜態(tài)屬性靜態(tài)方法,,三角函數(shù)方法靜態(tài)屬性對(duì)象的靜態(tài)屬性,提供以下一些數(shù)學(xué)常數(shù)。以為底的的對(duì)數(shù)。的指數(shù)方法返回常數(shù)的參數(shù)次方。四舍五入注意,它對(duì)負(fù)數(shù)的處理主要是對(duì)的處理。 Math是 JavaScript 的原生對(duì)象,提供各種數(shù)學(xué)功能。該對(duì)象不是構(gòu)造函數(shù),不能生成實(shí)例,所有的屬性和方法都必須在Math對(duì)象上調(diào)用。 靜態(tài)屬性靜態(tài)方法Math.abs()Math.max(),Math.min...

    ShevaKuilin 評(píng)論0 收藏0
  • 標(biāo)準(zhǔn)庫(kù)包裝對(duì)象二number

    摘要:對(duì)象概述作為構(gòu)造函數(shù),它主要用于生成布爾值的包裝對(duì)象實(shí)例。無輸出上面代碼的第一個(gè)例子之所以得到,是因?yàn)閷?duì)應(yīng)的包裝對(duì)象實(shí)例是一個(gè)對(duì)象,進(jìn)行邏輯運(yùn)算時(shí),被自動(dòng)轉(zhuǎn)化成布爾值因?yàn)樗袑?duì)象對(duì)應(yīng)的布爾值都是。 1.Boolean 對(duì) 象 1.1概述作為構(gòu)造函數(shù),它主要用于生成布爾值的包裝對(duì)象實(shí)例。 false對(duì)應(yīng)的包裝對(duì)象實(shí)例,布爾運(yùn)算結(jié)果也是true。 if (new Boolean(false...

    MAX_zuo 評(píng)論0 收藏0
  • 標(biāo)準(zhǔn)庫(kù)包裝對(duì)象二number

    摘要:對(duì)象概述作為構(gòu)造函數(shù),它主要用于生成布爾值的包裝對(duì)象實(shí)例。無輸出上面代碼的第一個(gè)例子之所以得到,是因?yàn)閷?duì)應(yīng)的包裝對(duì)象實(shí)例是一個(gè)對(duì)象,進(jìn)行邏輯運(yùn)算時(shí),被自動(dòng)轉(zhuǎn)化成布爾值因?yàn)樗袑?duì)象對(duì)應(yīng)的布爾值都是。 1.Boolean 對(duì) 象 1.1概述作為構(gòu)造函數(shù),它主要用于生成布爾值的包裝對(duì)象實(shí)例。 false對(duì)應(yīng)的包裝對(duì)象實(shí)例,布爾運(yùn)算結(jié)果也是true。 if (new Boolean(false...

    li21 評(píng)論0 收藏0
  • 標(biāo)準(zhǔn)庫(kù)包裝對(duì)象二number

    摘要:對(duì)象概述作為構(gòu)造函數(shù),它主要用于生成布爾值的包裝對(duì)象實(shí)例。無輸出上面代碼的第一個(gè)例子之所以得到,是因?yàn)閷?duì)應(yīng)的包裝對(duì)象實(shí)例是一個(gè)對(duì)象,進(jìn)行邏輯運(yùn)算時(shí),被自動(dòng)轉(zhuǎn)化成布爾值因?yàn)樗袑?duì)象對(duì)應(yīng)的布爾值都是。 1.Boolean 對(duì) 象 1.1概述作為構(gòu)造函數(shù),它主要用于生成布爾值的包裝對(duì)象實(shí)例。 false對(duì)應(yīng)的包裝對(duì)象實(shí)例,布爾運(yùn)算結(jié)果也是true。 if (new Boolean(false...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<