日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES6 深拷贝_你别自以为是:ES6误区 之 Object.assign()、const

發(fā)布時間:2025/3/12 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES6 深拷贝_你别自以为是:ES6误区 之 Object.assign()、const 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文/北媽

閱讀本文需要?2.3分鐘

很久沒發(fā)技術(shù)文,今天北媽在新開一個技術(shù)系列:“別自以為是,1分鐘走出JS常見誤區(qū)“,里面我會每期挑選幾個常見基礎(chǔ)屬性,講一講里面最容易被人忽略和認知錯誤的誤區(qū)。

幫助大家更好的掌握基礎(chǔ),這樣在面試和實際項目中可以避免很多低級錯誤和節(jié)省時間,歡迎拍磚甚至投稿。

今天說一下關(guān)于ES6 就引入的最常用的關(guān)于操作對象的新屬性:

Object.assign()、const

1、大家知道?Object.assign()?方法用于將所有可枚舉屬性的值從一個或多個源對象復(fù)制到目標對象。它將返回目標對象。

MDN官方文檔的例子就已經(jīng)說明一切?

const target = { a: 1, b: 2 };const source = { b: 4, c: 5 };const returnedTarget = Object.assign(target, source);console.log(target);// expected output: Object { a: 1, b: 4, c: 5 }console.log(returnedTarget);// expected output: Object { a: 1, b: 4, c: 5 }

這個屬性在ES6才引入,是一個不錯的操作js對象格式的新屬性。里面還涉及到深拷貝和淺拷貝,替換對象等眾多概念。

Object.assign?方法只會拷貝源對象自身的并且可枚舉的屬性到目標對象。

這個屬性在ES6才引入,是一個不錯的操作js對象格式的新屬性。里面還涉及到深拷貝和淺拷貝,替換對象等眾多概念。

在ES5里面要實現(xiàn)和Object.assign 相關(guān)的功能要用到? Object.defineProperty很復(fù)雜的去實現(xiàn)。

而Object.assign?最常用的功能是將新的對象或者json屬性 復(fù)制和追加到老的對象,然后生成一個新的整合對象。

項目里,很常用的就是請求傳參時,追加各種篩選條件了,這個大家應(yīng)該深有體會。

重要描述:如果目標對象中的屬性具有相同的鍵,則屬性將被源對象中的屬性覆蓋。后面的源對象的屬性將類似地覆蓋前面的源對象的屬性。

意思是如果原對象利用有j= {a: 1} ,新對象也有{a:2}那么 就會直接覆蓋,相當于是 j.a =2.這個在用的過程中是沒什么疑問的,正常覆蓋就好。

但一定要注意這個誤區(qū):比如:json1 = {a:1,?b:null?} ,那么 直接??

Object.assign(json1, {a:2,b:3}?); ?會發(fā)生什么?

大部分人不看文檔 會說:直接覆蓋被 最后是{a:2,b:3},但結(jié)果事與愿違,因為如果是NULL 這個罪魁禍首,assign 屬性是不會生效的,這個value 不會生效,因為官方有一句:

注意,Object.assign 不會跳過那些值為 null 或 undefined 的源對象。

所以一定要注意,檢查后端返給你的json數(shù)據(jù)里,有沒有屬性值為 null 或者?undefined,這個相當重要,不然會引來很多麻煩和bug。

這也是為啥一直強調(diào),null 和undefined 是絕對禁止出現(xiàn)在正常的數(shù)據(jù)格式中的。這個大家一定要注意,因為前一段我們后端居然就返回了null ,,無語!!!

2、大家知道 const?是類型聲明,大家再熟悉不過,也是es6才有的新屬性,之前都是萬惡的var,隨意改變作用于和值。有個const,相當于給變量加了一個鎖,但是

const聲明創(chuàng)建一個值的只讀引用。但這并不意味著它所持有的值是不可變的,只是變量標識符不能重新分配。例如,在引用內(nèi)容是對象的情況下,這意味著可以改變對象的內(nèi)容(例如,其參數(shù))。

?比如:


const? num = 1000;

num = 2000;
//? 會報錯 ,因為在同一作用于,num的值已經(jīng)固定,不可改變。

但是:

const? num = {a:1000};

num.a = 2000 ;
//? 這個不會報錯 ,因為在其屬性值是可以被改變的,也就是文檔里說的改變對象內(nèi)容,但你不能改變他在內(nèi)存中的表示和位置。

-----

這個其實看似很簡單,有很多人并不理解,以為看到const 就說明這個變量被鎖定了,該改變對象也不行,直接let 就行了,其實不對的,const照樣可以被改變,但記住,只是改變他的值。

這些在面試題或者平時開發(fā)都會遇到,算是常識的自以為是誤區(qū),大家注意,也歡迎大家對平時積累的累死誤區(qū),告訴我,我更多的公布出來。

每日金句世界上沒有恒久不變的東西,包括愛情和承諾。唯一不變的就是這個世界永遠在變

熱門閱讀

空閑時間不要接私活,要提升自己

月薪5k的國企, 和月薪2萬的私企,我選國企...

低學(xué)歷者生存困難 程序員尤其明顯

每天只想聽你們說:小北最帥!

長按掃碼關(guān)注我

一個不一樣的帥碼農(nóng)

每天有驚喜

我覺得?「在看」與「轉(zhuǎn)發(fā)」

也是對我的認可?

總結(jié)

以上是生活随笔為你收集整理的ES6 深拷贝_你别自以为是:ES6误区 之 Object.assign()、const的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 少妇高潮喷水在线观看 | 最新福利视频 | 中文字字幕在线中文乱码电影 | 蜜桃臀aⅴ精品一区二区三区 | 日韩中文字幕亚洲 | 丝袜老师扒开让我了一夜漫画 | av片免费在线 | 日韩极品在线观看 | 欧美精品1区 | 亚洲再线| 偷拍亚洲视频 | 欧美一级高清片 | 免费中文字幕视频 | 黄色片子免费看 | 天天上天天干 | 亚洲免费观看高清完整 | 日韩精品视频中文字幕 | 国产aa视频 | 不卡三区 | 奇米影视四色7777 | 五月婷婷爱 | 3d动漫精品啪啪一区二区竹菊 | 青娱乐国产视频 | 91a视频 | 丰满少妇被猛烈进入高清播放 | 成人免费视频播放 | a级片日本 | 九色91porny| 国产精品黄色 | 亚洲一区二区成人 | 婷婷在线免费观看 | av黄色在线观看 | 亚洲两性| 亚a在线| 二区视频在线 | av最新资源| 日韩亚洲欧美中文字幕 | 人妖videosex高潮另类 | 亚洲黄色在线视频 | 91免费看大片 | 最新一区二区三区 | 日本黄色录象 | 无码精品一区二区三区AV | 天天干,夜夜爽 | ass精品国模裸体欣赏pics | 善良的女朋友在线观看 | 亚洲精品免费在线播放 | 国产激情视频 | 一区视频在线播放 | 五月婷婷综合色 | 亚洲九九色 | 黄瓜视频在线免费看 | 啪啪亚洲 | 尤物91| 操比网站 | 久久久综合精品 | 亚洲第一区在线观看 | 欧美一区中文字幕 | 中文字幕日韩欧美 | 黄色草逼网站 | 泰坦尼克号3小时49分的观看方法 | 日本精品一区二区在线观看 | 巨茎大战刘亦菲 | 久久综合爱 | 韩国伦理中文字幕 | 麻豆三级在线观看 | 欧美少妇bbw | 中文字幕激情小说 | 久久中文字幕一区 | 欧美成人r级一区二区三区 中文无码一区二区三区在线观看 | 中国黄色小视频 | 领导揉我胸亲奶揉下面 | 麻豆免费视频 | 色欲一区二区三区精品a片 在线观看黄网站 | 亚洲av色香蕉一区二区三区 | 欧美图片一区 | 丝袜美女av | 亚洲av无码一区二区三区观看 | 在线免费视频你懂的 | 疯狂做爰高潮videossex | 亚洲第一伊人 | 一级黄色片毛片 | 久久精品激情 | 69成人免费视频 | 日日麻批 | 国产欧美久久久久久 | 性少妇xxxxx 亚洲一卡二卡在线观看 | 美女丝袜合集 | 超碰免费人人 | wwwxxxx日本 | 欧美日韩免费视频 | 男人天堂久久久 | 久久久久久久蜜桃 | 宇都宫紫苑在线播放 | 久久av一区二区 | 欧美激情精品久久久久久免费 | 黄色小说在线观看视频 | 男阳茎进女阳道视频大全 | 国产极品美女高潮无套嗷嗷叫酒店 |