摘要:前言中的類型只有種,其中基本數(shù)據(jù)類型有種分別為,引用類型有一種,就是,是一個大的綜合體,在中除了那個基本數(shù)據(jù)類型以外,其他的一切皆對象。
前言
JS中的類型只有6種,其中基本數(shù)據(jù)類型有5種分別為string,number,boolen,null,undefined,引用類型有一種,就是object,object是一個大的綜合體,在JS中除了那5個基本數(shù)據(jù)類型以外,其他的一切皆對象。正文 兩個對比的例子
var a = 100; var b = a; a++ console.log(a)//101 console.log(b)//100
var obj1 = new object(); var obj2 = new object(); obj1.age = 18; obj2 = obj1; obj1.age++ console.log(obj1.age)//19 console.log(obj2.age)//19
??可以看到上面兩個例子都是改變了值,基本數(shù)據(jù)類型是被賦值的不會變,而引用的是被賦值的也會隨之發(fā)生改變,那么這是為什么呢?其實很簡單,一句話就可以概括:因為基本數(shù)據(jù)類型保存的是值,而引用類型保存的是地址。
解釋例子??創(chuàng)建一個新的變量時,會將它存放在棧中,如果是對象的話,就會在另外的更大的堆中劃分一片區(qū)域,那么在棧中該對象存放的就是在堆中的地址。
如上圖,基本數(shù)據(jù)類型是直接在棧中存放值的,當(dāng)a發(fā)生變化的時候,b不會發(fā)生變化,因為b只是等于a的值,和a沒有什么關(guān)系。
??在obj1和obj2中存放的都是地址,obj2不是等于obj1的值,而是等于obj1在堆中存放的地址,所以當(dāng)?shù)刂分械膬?nèi)容發(fā)生變化時,obj2的內(nèi)容也會發(fā)生變化。只要創(chuàng)建一個新的對象,在堆中就會開辟一個新的區(qū)域去存放對象的屬性和方法等內(nèi)容。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/97761.html
摘要:那么如何切斷和之間的關(guān)系呢,可以拷貝一份的數(shù)據(jù),根據(jù)拷貝的層級不同可以分為淺拷貝和深拷貝,淺拷貝就是只進(jìn)行一層拷貝,深拷貝就是無限層級拷貝。 深拷貝 vs 淺拷貝 深拷貝和淺拷貝都是針對的引用類型,JS中的變量類型分為值類型(基本類型)和引用類型;對值類型進(jìn)行復(fù)制操作會對值進(jìn)行一份拷貝,而對引用類型賦值,則會進(jìn)行地址的拷貝,最終兩個變量指向同一份數(shù)據(jù)。 // 基本類型 var a = ...
摘要:實際上,是禁止這樣做的。傳值和傳址基本數(shù)據(jù)類型賦值基本數(shù)據(jù)類型的賦值是在內(nèi)存中新開辟一段棧內(nèi)存,然后再把再將值賦值到新的棧中。結(jié)果見輸出,可以看出來,無論是修改賦值得到的對象和淺拷貝得到的都會改變原始數(shù)據(jù)。 存儲問題:深拷貝和淺拷貝的主要區(qū)別:在內(nèi)存中的存儲類型(堆和棧)不同堆:動態(tài)分配的內(nèi)存,大小不定也不會自動釋放棧:自動分配的內(nèi)存,由系統(tǒng)自動釋放數(shù)據(jù)類型: 基本數(shù)據(jù)類型: jav...
摘要:從而也引出了所謂的深淺復(fù)制問題。附注對于淺復(fù)制,其實還有其他的實現(xiàn)方式,比如數(shù)組中和方法,對于這些還是希望大家自己了解,本本主要針對深淺復(fù)制的實現(xiàn)原理進(jìn)行解析。 前言 在之前寫繼承的過程談到了深淺復(fù)制的問題,因為有讀者反映到需要解析,趁今天周末寫一篇解析,今天的主體相對之前來說理解難度低一些,篇幅可能也比較短,諸君按需閱讀即可。 從兩種數(shù)據(jù)類型說起 在js中,變量的類型可以大致分成兩種...
摘要:四是在年出的持久性數(shù)據(jù)結(jié)構(gòu)的庫,持久性指的是數(shù)據(jù)一旦創(chuàng)建,就不能再被更改,任何修改或添加刪除操作都會返回一個新的對象。避免大量使用操作,這樣會浪費性能。盡量將設(shè)計成扁平狀的。 一、痛點 在我們的印象中,React 好像就意味著組件化、高性能,我們永遠(yuǎn)只需要關(guān)心數(shù)據(jù)整體,兩次數(shù)據(jù)之間的 UI 如何變化,則完全交給 React Virtual Dom 的 Diff 算法 去做。以至于我們很...
閱讀 1252·2023-04-26 02:20
閱讀 3375·2021-11-22 14:45
閱讀 4199·2021-11-17 09:33
閱讀 1040·2021-09-06 15:00
閱讀 1519·2021-09-03 10:30
閱讀 3931·2021-07-26 22:01
閱讀 1028·2019-08-30 15:54
閱讀 567·2019-08-30 15:43