2021-11-27 值類型 深淺拷貝 對象方法

值類型:

簡單(一般)數(shù)據(jù)類型:

字符串(String)廓块、數(shù)字(Number)秋度、布爾(Boolean)瓶盛、對空(Null)都伪、未定義(Undefined)呕乎、Symbol

引用(復(fù)雜)數(shù)據(jù)類型:

對象(Object)、數(shù)組(Array)陨晶、函數(shù)(Function)猬仁,

數(shù)據(jù)類型不同,那么瀏覽器對其內(nèi)部操作也就不大相同先誉,尤其是對于復(fù)雜數(shù)據(jù)類型而言湿刽,很有可能造成一些不必要的麻煩,變量的值如果是一般數(shù)據(jù)類型的話褐耳,瀏覽器會把這個值存放到【椪┕耄】中,如果是復(fù)雜數(shù)據(jù)類型將會在【堆】中開辟一個新的空間用于單獨(dú)存放铃芦,其中的【椦拍鳎】和【堆】是一種概念,相當(dāng)于內(nèi)存中某處存放數(shù)據(jù)的地方刃滓,對于【椚逝耄】,是有一定大小空間的咧虎,如果這個數(shù)據(jù)過于龐大卓缰,比如一些數(shù)位高的驚人的數(shù)據(jù),在處理上也會造成延誤或者滯留老客。

比如:

let a = 100,? ?let b = a ,那么b的結(jié)果也將等于100

let a = { name : '王二麻子' }? ,? let b = a ,由于此時兩個變量都是指向一個值僚饭,而由于對象的值是存放在【堆】里面的震叮,【堆】會將數(shù)據(jù)的位置生成一串內(nèi)部地址存放在【楇逝椋】里,a和b都指向這個地址苇瓣,則此時 b的結(jié)果也將會是 { name:'王二麻子'}? ,但如果此時賦值 b = { name : '路人甲' },則由于更改的是同一內(nèi)存地址內(nèi)的值尉间,則這個值也會影響a的取值,此時的a也會等于?{ name : '路人甲' }


深淺拷貝:

由上文引起對于深淺拷貝的初級概念(后面對于JSON的方法概念也會加深這個理解)击罪,深拷貝就是不影響其他變量的值哲嘲,將地址,文件全復(fù)制媳禁,淺拷貝就是僅復(fù)制地址眠副,更改其值會影響調(diào)用該地址的其他對象,上文的a和b就是例子竣稽,b僅復(fù)制了a的地址囱怕,賦值b的同時也會影響a的內(nèi)容霍弹,

由淺拷貝變深拷貝的方法:

定義b為一個新的地址(即開辟一個新的數(shù)據(jù)存放在【堆】中),let b = { } , 然后b【“name”】= ’炮灰丙’娃弓,則此時重定義后的b雖然前面也”=“a了但自己開辟了一個內(nèi)存地址典格,即可在不影響a的情況下變更該值,

或者台丛,使用數(shù)組方法【concat()】耍缴,

let a = [ 1,3,5 ]?

let b = 【 】? ?,? b.concat(a)?

那么 b = 【 1,3,5 】,更改b[0]=3挽霉,

那么:a = [1,3,5]防嗡、b = [ 3,3,5]

運(yùn)用擴(kuò)展運(yùn)算符:用于取出參數(shù)對象所有可遍歷屬性然后拷貝到當(dāng)前對象(自定義的屬性在拓展運(yùn)算符后面,則拓展運(yùn)算符對象內(nèi)部同名的屬性將被覆蓋掉炼吴。

let person = {name: "Amy", age: 15};

let someone = { ...person };

someone; //{name: "Amy", age: 15}


對象方法:(ES6新增)

Object.assign(target, source_1, ···)(用于將源對象的所有可枚舉屬性復(fù)制到目標(biāo)對象中)(淺拷貝)

let target = {a: 1};

let object2 = {b: 2};

let object3 = {c: 3};

Object.assign(target,object2,object3);

target; // {a: 1, b: 2, c: 3}

如果目標(biāo)對象和源對象有同名屬性本鸣,或者多個源對象有同名屬性,則后面的屬性會覆蓋前面的屬性硅蹦,且如果該函數(shù)只有一個參數(shù)荣德,當(dāng)參數(shù)為對象時,直接返回該對象童芹;當(dāng)參數(shù)不是對象時涮瞻,會先將參數(shù)轉(zhuǎn)為對象然后返回(詳細(xì)可參考菜鳥教程3.2.3 ES6 對象 | 菜鳥教程

Object.is(value1, value2)(用來比較兩個值是否嚴(yán)格相等,與(===)基本類似)

Object.is("q","q"); // true

Object.is(1,1); // true

Object.is([1],[1]); // false

Object.is({q:1},{q:1}); // false

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末假褪,一起剝皮案震驚了整個濱河市署咽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌生音,老刑警劉巖宁否,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缀遍,居然都是意外死亡慕匠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門域醇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來台谊,“玉大人,你說我怎么就攤上這事譬挚」Γ” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵减宣,是天一觀的道長盐须。 經(jīng)常有香客問我,道長漆腌,這世上最難降的妖魔是什么贼邓? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任姨蟋,我火速辦了婚禮,結(jié)果婚禮上立帖,老公的妹妹穿的比我還像新娘眼溶。我一直安慰自己,他們只是感情好晓勇,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布堂飞。 她就那樣靜靜地躺著,像睡著了一般绑咱。 火紅的嫁衣襯著肌膚如雪绰筛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天描融,我揣著相機(jī)與錄音铝噩,去河邊找鬼。 笑死窿克,一個胖子當(dāng)著我的面吹牛骏庸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播年叮,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼具被,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了只损?” 一聲冷哼從身側(cè)響起一姿,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎跃惫,沒想到半個月后叮叹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡爆存,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年蛉顽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片终蒂。...
    茶點(diǎn)故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜂林,死狀恐怖遥诉,靈堂內(nèi)的尸體忽然破棺而出拇泣,到底是詐尸還是另有隱情,我是刑警寧澤矮锈,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布霉翔,位于F島的核電站,受9級特大地震影響苞笨,放射性物質(zhì)發(fā)生泄漏债朵。R本人自食惡果不足惜子眶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望序芦。 院中可真熱鬧臭杰,春花似錦、人聲如沸谚中。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宪塔。三九已至磁奖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間某筐,已是汗流浹背比搭。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留南誊,地道東北人身诺。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像抄囚,于是被迫代替她去往敵國和親戚长。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評論 2 360

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