一、類型轉(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)存泄露。
破解方法:
例:

四、關(guān)于深拷貝與淺拷貝
????????對(duì)于簡(jiǎn)單類型的數(shù)據(jù)來(lái)說(shuō),賦值就是深拷貝。
????????對(duì)于復(fù)雜類型的數(shù)據(jù)(對(duì)象)來(lái)說(shuō),才要區(qū)分淺拷貝和深拷貝。
????????淺拷貝例子:

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