JS 里的數(shù)據(jù)類型轉(zhuǎn)換

一、類型轉(zhuǎn)換

? ? 1.轉(zhuǎn)換成String

? ? ? ? 方法一:toString()? 如圖一:

圖一

? ? ? ? ?方法二:x + ''? 如圖二:

圖二

? ? ? ? ? ? 方法三: window.String(x)? 如圖三:


圖三

? ? ? ? ? ? 對(duì)于null和undefined,用方法一會(huì)報(bào)錯(cuò),用方法二、三不會(huì)報(bào)錯(cuò)(圖四):


圖四

? ? ? ? 2.轉(zhuǎn)換成Boolean

? ? ? ? ? ? ?方法一:Boolean(x)? 如圖五:


圖五

? ? ? ? ? ? ? 方法二:!!x (兩次取反,如圖六):


圖六

? ? ? ? ? ? ? ? 另外需要記住以下五個(gè)falsey值(圖七):數(shù)字0、NaN、''(空字符串)、null、undefined


圖七

? ? ? ? ? 3.轉(zhuǎn)換成Number

? ? ? ? ? ? ? ? ? ? 方法一:Number(x)? 如圖八:


圖八

? ? ? ? ? ? ? ? ? ? ?方法二:parseInt(x, 10)? 如圖九:


圖九

? ? ? ? ? ? ? ? ? ? ?方法三:parseFloat(x)? ?+x如圖十:


圖十

? ? ? ? ? ? ? ? ? ? ?方法四:x - 0? ?如圖十一:


圖十一

? ? ? ? ? ? ? ? ? ? ? ? 方法五:+x? 如圖十二:


圖十二

二、內(nèi)存圖解

????????首先簡(jiǎn)單介紹一下內(nèi)存和外存的區(qū)別。內(nèi)存一旦斷電則所有東西都消失了;外存不論是否斷電東西都存著,但其運(yùn)行速度較慢,目前市面上的SSD運(yùn)行速度能接近內(nèi)存,另外還有機(jī)械硬盤。

????????開機(jī)時(shí),電腦會(huì)把外存的東西讀到內(nèi)存上。關(guān)于內(nèi)存的分配大致如下:

????????操作系統(tǒng)開機(jī)占用 512MB

????????瀏覽器如Chrome 打開大概占用 1G 內(nèi)存

????????瀏覽器各每個(gè)網(wǎng)頁(yè)分配一定數(shù)量的內(nèi)存

????????每個(gè)頁(yè)面內(nèi)存要分給頁(yè)面渲染器、網(wǎng)絡(luò)模塊、瀏覽器外殼和 JS 引擎(V8引擎)

????????JS 引擎將內(nèi)存分為代碼區(qū)和數(shù)據(jù)區(qū)

????????數(shù)據(jù)區(qū)分為 Stack(棧內(nèi)存) 和 Heap(堆內(nèi)存)

????????簡(jiǎn)單類型的數(shù)據(jù)直接存在 Stack 里

????????復(fù)雜類型的數(shù)據(jù)是把 Heap 地址存在 Stack 里

? ? ? ? 關(guān)于內(nèi)存的幾個(gè)面試題:

? ? ? ? ? ? 注意遇到問(wèn)題畫圖即可。

? ? ? ? 1.?

? ? ? ? ? ? ? ? 答案:


? ? ? ? ?2.

? ? ? ? ? ? ? ? 答案:


? ? ? ? ?3.

? ? ? ? ? ? ? ? ?答案(注意與題2對(duì)比):


? ? ? ? ?4.

? ? ? ? ? ? ? ? 答案:


三、垃圾回收

若一個(gè)對(duì)象沒有被引用就是垃圾,將會(huì)被回收。

正常情況下若關(guān)閉瀏覽器則Heap中的東西就會(huì)變成垃圾被瀏覽器回收,但是IE6有bug,它仍然認(rèn)為這些東西不是垃圾,于是就會(huì)導(dǎo)致垃圾越來(lái)越多,內(nèi)存不能被重新利用,導(dǎo)致內(nèi)存泄露。

破解方法:

例:


把事件對(duì)象清空

四、關(guān)于深拷貝與淺拷貝

????????對(duì)于簡(jiǎn)單類型的數(shù)據(jù)來(lái)說(shuō),賦值就是深拷貝。

????????對(duì)于復(fù)雜類型的數(shù)據(jù)(對(duì)象)來(lái)說(shuō),才要區(qū)分淺拷貝和深拷貝。

????????淺拷貝例子:


b變了,a也變了

????????深拷貝就是對(duì) Heap 內(nèi)存進(jìn)行完全的拷貝。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容