亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

深入理解JavaScript中為什么string可以擁有方法

2019-11-20 09:56:52
字體:
來源:轉載
供稿:網友

引子

我們都知道,JavaScript數據類型分兩大類,基本類型(或者稱原始類型)和引用類型。

基本類型的值是保存在棧內存中的簡單數據段,它們是按值訪問的。JS中有五種基本類型:Undefined、Null、Boolean、Number和String。

引用類型的值是保存在堆內存中的對象,它的值是按引用訪問的。引用類型主要有Object、Array、Function、RegExp、Date。

對象是擁有屬性和方法的,所以我們看到下面這段代碼一點也不奇怪.

var favs=['雞蛋','蓮蓬'];favs.push('秋葵');console.log(favs);//["雞蛋", "蓮蓬", "秋葵"]console.log(favs.length);//3

Array是引用類型,所以它自然可以擁有屬性(length)和方法(push),這天經地義地就像夏天一定要吃冰淇淋一樣。但是,再看下面的代碼,仔細想想,這這這,合法嗎?

var realMessage="Said I love you but I lied";var myMessage=realMessage.substring(5,15);console.log(myMessage); //"I love you"

有一個心碎的女紙任性地對一個用來分手的字符串任性地執行了“substring”方法,然后開心地看著剪輯版睡過去了??墒强墒强墒牵皇钦fstring是基本類型嗎,為什么它可以擁有方法??還有沒有王法啊青天大老爺!

其實,這一切,都是因為有個叫“基本包裝類型”的東東。這個基本包裝類型特別耿直,是真正的“事了拂衣去,深藏功與名”!

基本包裝類型

除了一開始提到的Object、Array等引用類型,JavaScript還為我們提供了三種特殊的引用類型:String、Number和Boolean,方便我們操作對應的基本類型。

繼續看上面的剪輯字符串的例子,有沒有注意到,盡管使用了substring方法,realMessage本身的值是不會變的,調用這個方法只是返回了一個新的字符串。

這就是基本包裝類型的作用了。本來你是沒有方法的,但是你想用方法的時候,你盡管調,對應的基本包裝類型有這個方法就行。例如上面的substring方法,string這個基本類型是不可能有這個方法的,但是String這個包裝類型有啊,它會吭吭哧哧地把這個方法執行完把結果返回。在執行到:

realMessage.substring(5,15)這行代碼時,發生了很多事。

首先,它會從內存中讀取realMessage的值。當處于這種讀取模式下的時候,后臺就開始干活了。JS高程是這樣描述后臺完成的這些動作的:

1.創建String類型的一個實例;

2.在實例上調用指定的方法;

3.銷毀這個實例

上面的例子可以用這樣的代碼來說明:

var _realMessage=new String("Said I love you but I lied");var myMessage=_realMessage.substring(5,15);_realMessgae=null; //方法調用后即銷毀

所以,這樣我們就明白了,并不是基本類型string執行了自身方法,而是后臺為它創建了一個對應的基本包裝類型String,它根據基本類型的值實例化出了一個實例,讓這個實例去調用指定方法,最后銷毀自己,感天動地有木有。

注意最后一步基本包裝類型“會銷毀”的特性,這決定了我們不能為基本類型值添加自定義屬性和方法。

var me="sunjing";me.age=18;console.log(me.age);//undefined

我給“me“這個字符串添加了age屬性,值設為美好的18歲,然并卵,再次訪問時,這個屬性已經渺無蹤跡了。這是因為:

執行到第二行代碼屬性賦值時,后臺創建了一個基本包裝類型的實例,這個age屬性確實掛到實例上去了,但是緊跟著,這個實例就被銷毀了。執行到第三行時,又重新創建了新的基本包裝類型的實例,自然是沒有age屬性的。

顯示使用基本包裝類型

除了在字符串處于讀取模式下,后臺會幫我們創建基本包裝類型實例時,我們自己也可以顯示地創建。

var str=new String("hello");var str2=str.toUpperCase();console.log(str2);//"HELLO:

這樣與后臺幫我們創建時變量中保存的東西是不同的。

var str1=new String("hello");var str2="hello";typeof str1 //"object"typeof str2 //"string"

總結

多虧了有基本包裝類型,我們操作string、boolean、number這三種基本類型更方便了。每當讀取這三種基本類型值時,后臺會創建對應的包裝類型實例,這個實例會調用指定方法,調用完會被銷毀。這種短暫的生命周期決定了我們不能為基本類型添加自定義的屬性和方法。

以上這篇深入理解JavaScript中為什么string可以擁有方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久av福利软件| 亚洲精品欧美极品| 91精品啪aⅴ在线观看国产| www国产亚洲精品久久网站| 日韩福利伦理影院免费| 久久精品国产视频| 欧美日韩亚洲网| 国产精品久久婷婷六月丁香| 中文字幕免费国产精品| 91色视频在线观看| 国产性色av一区二区| 国产精品久久在线观看| 久久精品国产精品| 欧美性感美女h网站在线观看免费| 免费av在线一区| 国产午夜精品全部视频在线播放| 亚洲一区第一页| 欧美精品第一页在线播放| 久久91亚洲精品中文字幕| 久久天天躁狠狠躁老女人| 欧美超级乱淫片喷水| 欧美成人午夜激情在线| 国产欧美日韩中文字幕| 中文字幕在线视频日韩| 久久久av一区| 日韩av最新在线| 久久99精品视频一区97| 欧美在线一区二区三区四| 不卡伊人av在线播放| 亚洲欧美一区二区激情| 欧美老妇交乱视频| 国产综合福利在线| 国产视频久久久| 国产中文字幕亚洲| 日韩乱码在线视频| 久久久久久久香蕉网| 97国产精品视频| 久久久久久久一区二区| 在线播放国产精品| 欧美中文字幕视频在线观看| 美女福利精品视频| 欧美激情久久久久久| 26uuu国产精品视频| 日韩中文字幕网站| 欧美日本黄视频| 精品国产鲁一鲁一区二区张丽| 久久成年人免费电影| 亚洲精选一区二区| 亚洲激情第一页| 国产成人精品av在线| 国产精品香蕉在线观看| 91国产精品91| 亚洲精品第一页| 亚洲成人教育av| 午夜精品久久久久久久男人的天堂| 久久五月情影视| 久久精品视频亚洲| 亚洲免费影视第一页| 欧美亚洲一级片| 精品视频在线播放免| 欧美激情一区二区三级高清视频| 欧美激情久久久久| 国产亚洲精品高潮| 国产成人在线播放| 91精品在线播放| 国产美女精品视频免费观看| 欧美伊久线香蕉线新在线| 日韩av理论片| 国产精品久久久久久久久久免费| 亚洲v日韩v综合v精品v| 国产激情久久久久| 日韩免费在线免费观看| 成人国产亚洲精品a区天堂华泰| 亚洲一区免费网站| 欧美黄色www| 国产精品夜间视频香蕉| 激情av一区二区| 久久国产精品免费视频| 亚洲欧美日韩在线一区| 91色在线视频| 日韩成人在线免费观看| 日韩中文字幕欧美| 久久激情视频久久| 亚洲国产欧美自拍| 97精品伊人久久久大香线蕉| 51视频国产精品一区二区| 日韩成人在线网站| 欧美日韩成人精品| 日韩电影在线观看永久视频免费网站| 亚洲美女中文字幕| 九九热这里只有在线精品视| 5252色成人免费视频| 欧美国产中文字幕| 中文.日本.精品| 亚洲经典中文字幕| 在线观看日韩www视频免费| 成人欧美一区二区三区在线湿哒哒| 欧洲成人午夜免费大片| 日韩欧美国产网站| 亚洲自拍欧美另类| 成人疯狂猛交xxx| 中文字幕亚洲第一| 成人动漫网站在线观看| 亚洲电影成人av99爱色| 亚洲国产精品久久久久秋霞蜜臀| 日韩美女在线看| 国产精品白嫩初高中害羞小美女| 伊人久久免费视频| 亚洲人成网站免费播放| 91夜夜揉人人捏人人添红杏| 欧美日韩亚洲91| 91精品视频专区| 亚洲另类激情图| 国产亚洲一级高清| 国产主播欧美精品| 91精品久久久久久久久| 亚洲精品网址在线观看| 97久久久久久| 精品爽片免费看久久| 中文精品99久久国产香蕉| 欧美成人一区二区三区电影| 欧美日韩中文在线观看| 疯狂做受xxxx高潮欧美日本| 亚洲欧美一区二区三区四区| 欧美伊久线香蕉线新在线| 欧美激情精品久久久久久免费印度| 精品国产精品三级精品av网址| 日韩av免费看| 亚洲国产精品资源| 日韩欧美大尺度| 亚洲最大福利网| 国产日韩在线一区| 98午夜经典影视| 亚洲系列中文字幕| 亚洲精品中文字幕av| 一本色道久久88亚洲综合88| 欧美在线视频在线播放完整版免费观看| 日韩在线国产精品| 日韩欧美精品在线观看| 91精品久久久久久久久久另类| 亚洲老板91色精品久久| xvideos成人免费中文版| 精品偷拍各种wc美女嘘嘘| 日韩69视频在线观看| xvideos亚洲人网站| 91精品久久久久久久| 亚洲欧美一区二区三区情侣bbw| 狠狠久久五月精品中文字幕| 国产精品自产拍高潮在线观看| 久久人人97超碰精品888| 国模私拍一区二区三区| 岛国视频午夜一区免费在线观看| 欧美久久精品一级黑人c片| 国产精品一区二区三区免费视频| 亚洲欧洲午夜一线一品| 国产精品aaa| 992tv成人免费视频| 久久综合五月天| 粉嫩av一区二区三区免费野| 国产精品第二页| 欧美日韩精品中文字幕| 综合国产在线视频| 亚洲高清免费观看高清完整版| 啪一啪鲁一鲁2019在线视频|