摘要:包裝類對象介紹里的三個主原始數(shù)據(jù)類型數(shù)值,字符串及布爾每一個都有其對應的對象類。最后一點,所有的數(shù)值,字符串及布爾都可以通過函數(shù)轉(zhuǎn)換成其對應的對象優(yōu)點可以使用很多使用方法封裝類對象結(jié)合隱式強制轉(zhuǎn)換,讓我們可以使用很多實用的方法。
包裝類對象 介紹
js里的三個主原始數(shù)據(jù)類型(數(shù)值,字符串及布爾)每一個都有其對應的對象類。
JavaScript中不僅提供了數(shù)值型,字符串型及布爾型,它還提供了數(shù)值類,字符串類及布爾類。這些類將對應的原始數(shù)據(jù)類型包裝了起來,它不但擁有其原始數(shù)據(jù)值,而且還定義了屬性和操作值的方法。
JavaScript能夠很靈活的轉(zhuǎn)換各種數(shù)據(jù)類型。當你訪問一個字符串的屬性或方法時,JavaScript內(nèi)部會自動創(chuàng)建其包裝對象。這個字符串包裝對象將替換原始字符串值,它擁有已定義的屬性和方法。
這樣的使用方法是對的:
var s="hello";//這是一個原始數(shù)據(jù)值 var S=new String("hello");//這是一個字符串對象 typeof s //"string" typeof S //"object"
字符串在需要的時候會自動的轉(zhuǎn)換為字符串對象。當你對S使用+運算符時,一個對應的原始字符串值將被創(chuàng)建,以便執(zhí)行運算。
記住,這里討論的所有內(nèi)容都同樣作用于數(shù)值型和布爾型。最后一點,所有的數(shù)值,字符串及布爾都可以通過Object()函數(shù)轉(zhuǎn)換成其對應的對象: var number_wrapper=Object(22)
優(yōu)點 可以使用很多使用方法封裝類對象結(jié)合隱式強制轉(zhuǎn)換,讓我們可以使用很多實用的方法。
當對原始值提取屬性 和 進行方法調(diào)用時, 它表現(xiàn)的就像已經(jīng)使用了對應的對象類型封裝了該值一樣。如——
"hello".toUpperCase(); //"HELLO"缺點 獲取和設置原始類型值的屬性會隱式地創(chuàng)建封裝對象,導致沒有符合預期行為
一是,隱式轉(zhuǎn)換+封裝類 使得對原始值設置屬性,可能會沒有任何作用
"hello".someProperty=17; "hello".someProperty; //undefined
這會導致有時候本想給一個對象設置屬性,但沒想到其是個原始值,這樣設置的屬性之后獲取不到,會造成隱藏的錯誤。
并且,因為每次隱式封裝都會產(chǎn)生一個新的String對象,更新第一個封裝對象并不會造成持久的影響。
二是,這意味著,你不能使用內(nèi)置的操作符來比較兩個截然不同的String對象的內(nèi)容
var s1 = new String("hello") var s2 = new String("hello") s1 === s2 //false
由于每個String對象都是一個多帶帶的對象,氣重視值等于自身。對于非嚴格相等運算符,結(jié)果同樣如此
s1 == s2 //false
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94500.html
摘要:但是基本數(shù)據(jù)類型不是對象,不具備對象的特性不攜帶屬性沒有方法可調(diào)用。自動裝箱即直接賦值將會比使用構造方法的方式節(jié)省一塊堆內(nèi)存空間,并自動入對象池。而手動裝箱使用構造方法會產(chǎn)生兩塊堆內(nèi)存,而且不會保存在對象池中。 概念 java在設計之初,有一個基本原則:一切皆對象。但是基本數(shù)據(jù)類型不是對象,不具備對象的特性——不攜帶屬性、沒有方法可調(diào)用。為了解決此類問題,Java為每種基本數(shù)據(jù)類型分別...
摘要:包裝類基本數(shù)據(jù)類型如等。它們并不具備對象的特性,比如不能調(diào)用方法。為了讓基本數(shù)據(jù)類型也能具有對象的特性,為每個基本數(shù)據(jù)類型提供了包裝類。 包裝類 基本數(shù)據(jù)類型:如 int、float、double、boolean、char 等。它們并不具備對象的特性,比如不能調(diào)用方法。為了讓基本數(shù)據(jù)類型也能具有對象的特性,java為每個基本數(shù)據(jù)類型提供了包裝類。 基本類型和包裝類之間的對應關系: sh...
摘要:前陣子,我們分享了中的基本數(shù)據(jù)類型轉(zhuǎn)換這篇文章,對許多粉絲還是有帶來幫助的,今天講一下包裝類的的由來,及自動裝箱拆箱的概念和原理。下面是基本數(shù)據(jù)類型與對應的包裝類型。 showImg(https://segmentfault.com/img/remote/1460000016537706); 前陣子,我們分享了《Java中的基本數(shù)據(jù)類型轉(zhuǎn)換》這篇文章,對許多粉絲還是有帶來幫助的,今天講...
摘要:知識點總結(jié)常用類包裝類知識點總結(jié)常用類包裝類是一個面向?qū)ο蟮恼Z言,但是中的基本數(shù)據(jù)類型卻不是面向?qū)ο蟮?。但是我們在實際使用中經(jīng)常將基本數(shù)據(jù)類型轉(zhuǎn)換成對象,便于操作。 Java知識點總結(jié)(常用類-包裝類) @(Java知識點總結(jié))[Java, Java常用類] [toc] 包裝類(wrapper) Java是一個面向?qū)ο蟮恼Z言,但是Java中的基本數(shù)據(jù)類型卻不是面向?qū)ο蟮?。但是我們在實際...
摘要:包裝模式是這樣干的首先我們弄一個裝飾器,它實現(xiàn)了接口,以組合的方式接收我們的默認實現(xiàn)類。其實裝飾器抽象類的作用就是代理核心的功能還是由最簡單的實現(xiàn)類來做,只不過在擴展的時候可以添加一些沒有的功能而已。 前言 只有光頭才能變強 回顧前面: 給女朋友講解什么是代理模式 前一篇已經(jīng)講解了代理模式了,今天要講解的就是裝飾模式啦~ 在看到FilterInputStream和FilterOutpu...
閱讀 1220·2023-04-25 20:31
閱讀 3730·2021-10-14 09:42
閱讀 1502·2021-09-22 16:06
閱讀 2684·2021-09-10 10:50
閱讀 3536·2021-09-07 10:19
閱讀 1782·2019-08-30 15:53
閱讀 1180·2019-08-29 15:13
閱讀 2826·2019-08-29 13:20