《js里的數(shù)據(jù)類(lèi)型轉(zhuǎn)換》

一:轉(zhuǎn)字符串

1:number boolean 可以調(diào)用toString()方法轉(zhuǎn) 為字符串。

2:undefined null 不能轉(zhuǎn)字符串。會(huì)出現(xiàn)報(bào)錯(cuò)。

3.object 的 tostring()方法也可以轉(zhuǎn)字符串,但是結(jié)果不是我們想要的。

4:主要 轉(zhuǎn) 字符串方法 (老司機(jī)常用,快捷)+' ';

上面列舉? + ‘ ’的方法使用,這個(gè)方法 比toString()方法功能要多還簡(jiǎn)單,此方法 null undefinde 也可以轉(zhuǎn)字符串;

二:轉(zhuǎn)布爾?

1:Boolean()方法轉(zhuǎn)布爾,只要Boolean() 里面有東西,都為true, 0 和 空字符串 null? undefined 為false;


2:轉(zhuǎn)布爾(老手方法)! 為取反,??!就表示自身的布爾值啦;


其中有5個(gè)falsy值,需要記憶;0,NAN,' ',null,undefined 為false;

其余的都為true

三:轉(zhuǎn)number

1:Number()方法,

2:parseInt('1',10) 其中parseInt方法有兩個(gè)參數(shù),第一個(gè) 書(shū)數(shù)據(jù)要解析的值,第二個(gè) 是 進(jìn)制。(parse:解析)

3:parseFloat 用來(lái)解析小數(shù)的方法

4:騷方法 (數(shù)據(jù) -0)number類(lèi)型; 簡(jiǎn)單實(shí)用

四:對(duì)象之間的轉(zhuǎn)換

這里需要 用到 內(nèi)存啦 (一旦斷了電,里面東西都沒(méi)啦);內(nèi)存主要分為 代碼區(qū) ,數(shù)據(jù)區(qū) ,數(shù)據(jù)區(qū) 包括 stack棧內(nèi)存,Heap 堆內(nèi)存。分布 如圖?

stack 存簡(jiǎn)單類(lèi)型的值 和地址,Heap 存 復(fù)雜類(lèi)型的值例

:var a = {name: 'a'}? ? ? ? ? ? ? ? ??

var b = a? ? ? ? ?例 圖解?

b.name = 'b'

請(qǐng)問(wèn)現(xiàn)在 a.name 是多少?? 答 a.name = 'b'


1:一個(gè)面試題? 垃圾回收?

如果 一個(gè)對(duì)象沒(méi)有被引用 ,他就是 垃圾 ,將被回收 。如上圖,假如 a 和 b 地址 同時(shí) 沒(méi)指向Heap里的 對(duì)象 ,那么 Heap 里的 對(duì)象 就沒(méi)被引用 ,它就是 垃圾 ,將被回收。


2:淺拷貝 深拷貝?

淺拷貝:假如 b 的 值變化 啦 a 的值就變化啦 那么 就是 淺拷貝。上圖 例 子 就是 淺拷貝

深拷貝: 假如 b 的 值 變化 不影響a 的 變化,除了 基本類(lèi)型 (因?yàn)?基本類(lèi)型 不存 heap例),賦值 就是就是深拷貝。? 如下例 就是深拷貝

?var a = {name: 'a'}

var b = a

b = null

請(qǐng)問(wèn)現(xiàn)在 a 是什么? a = {name:'a'}


最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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