普通類型和對象的區(qū)別以及JS 里的數(shù)據(jù)類型轉(zhuǎn)換

JavaScript 的數(shù)據(jù)類型拟糕,共有七種吩蔑。
6種為基本類型(Number,String坑雅,Boolean实檀,Null惶洲,Undefined,Symbol)膳犹。
這六種數(shù)據(jù)類型是存儲在棧 (Stack)中的恬吕,一行一行存儲。
最后一種復雜數(shù)據(jù)類型Object是存儲在堆(Heap)中的须床,通過引用的方式賦值給變量铐料。

瀏覽器的JS引擎在得到內(nèi)存后會劃分為兩個區(qū)域代碼區(qū)和數(shù)據(jù)區(qū),在數(shù)據(jù)區(qū)劃分為棧內(nèi)存(Stack)堆內(nèi)存(Heap)
簡單類型的數(shù)據(jù)之間存在Stack中豺旬,復雜類型的數(shù)據(jù)是把 Heap 地址存在 Stack 里钠惩。

第一題
var a = 1
var b = a
b = 2
請問 a 顯示是幾?
QQ圖片20190225152426.png

此時執(zhí)行b=2直接將 2 的值放在 b 的stack中,如:

QQ圖片20190225152540.png

所以b的改變并沒有影響到a族阅,a的結(jié)果還是1篓跛。

第二題
var a = {name: 'a'}
var b = a
b.name = 'b'
請問現(xiàn)在 a.name 是多少?
QQ圖片20190225152902.png

當運行至var b = a時a和b的指向相同耘分,此時運行b.name = 'b'举塔,更改了heap中地址1中的信息绑警,如圖所示求泰。所以這個時候a.name的結(jié)果是{name: 'b'}央渣。

淺拷貝和深拷貝

var a = 1
var b = a
b = 2 

上邊的代碼中當對b改變了,a完全不受影響渴频,即為深拷貝芽丹。
對于簡單類型中,賦值就是深拷貝卜朗。
對于復雜類型(對象)拔第,就有深拷貝和淺拷貝一說。因為復雜類型存在引用關(guān)系场钉,所以在更改其中一個對象時蚊俺,兩者的指向還是相同的,即存在一個發(fā)生變化逛万,另個也一起變化泳猬。

淺拷貝則是簡單的值的傳遞,a值傳遞給b宇植,b值改動時得封,a值也會改動,以對象為例:

var a = {name: 'frank'}
var b = a
b.name = 'b'
a.name === 'b' // true
GC垃圾回收機制

如果一個對象沒有被引用指郁,就是垃圾忙上,將被回收。

var fn = function(){}
document.body.onclick = fn
fn = null
document.body.onclick = null
任意類型轉(zhuǎn)字符串

String(x)
x.toString()
x + ''


QQ圖片20190225154139.png
任意類型轉(zhuǎn)布爾

Boolean(x)
!!x

如果 JavaScript 預期某個位置應該是布爾值闲坎,會將該位置上現(xiàn)有的值自動轉(zhuǎn)為布爾值疫粥。轉(zhuǎn)換規(guī)則是除了下面六個值被轉(zhuǎn)為false,其他值都視為true腰懂。

undefined
null
false
0
NaN
""或''(空字符串)
任意類型轉(zhuǎn)數(shù)字
  1. Number(x)
  2. parseInt(x, 10) MDN
  3. parseFloat(x) MDN
  4. x - 0
  5. +x
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梗逮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子悯恍,更是在濱河造成了極大的恐慌库糠,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涮毫,死亡現(xiàn)場離奇詭異瞬欧,居然都是意外死亡,警方通過查閱死者的電腦和手機罢防,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門艘虎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咒吐,你說我怎么就攤上這事野建∈艋” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵候生,是天一觀的道長同眯。 經(jīng)常有香客問我,道長唯鸭,這世上最難降的妖魔是什么须蜗? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮目溉,結(jié)果婚禮上明肮,老公的妹妹穿的比我還像新娘。我一直安慰自己缭付,他們只是感情好柿估,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陷猫,像睡著了一般秫舌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上烙丛,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天舅巷,我揣著相機與錄音,去河邊找鬼河咽。 笑死钠右,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的忘蟹。 我是一名探鬼主播飒房,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼媚值!你這毒婦竟也來了狠毯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤褥芒,失蹤者是張志新(化名)和其女友劉穎嚼松,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锰扶,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡献酗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坷牛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罕偎。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖京闰,靈堂內(nèi)的尸體忽然破棺而出颜及,到底是詐尸還是另有隱情甩苛,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布俏站,位于F島的核電站讯蒲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏乾翔。R本人自食惡果不足惜爱葵,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一施戴、第九天 我趴在偏房一處隱蔽的房頂上張望反浓。 院中可真熱鬧,春花似錦赞哗、人聲如沸雷则。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽月劈。三九已至,卻和暖如春藤乙,著一層夾襖步出監(jiān)牢的瞬間猜揪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工坛梁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留而姐,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓划咐,卻偏偏與公主長得像拴念,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子褐缠,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容