這次讓面試官非常滿意:手撕深拷貝
-------------人工分割線-------------
淺拷貝這裡不做介紹了,深拷貝的實現要點,除了一定要深!還要能相容各種型別,如函式,正則、date等等。但上班擰螺絲,面試造航母的精神不容小覷!本著專研精神去看待怎麼才能寫個牛逼、各種場合都能通用的轉殖方式?我做了不少功課。其實日常業務開發中,json.parse(json.stringfy(obj))已經能夠解決90%左右的轉殖需求。還有object.assign() object.create()都能滿足一定的轉殖需求。
在思考如何實現深拷貝之前,首先得弄明白:
實現思路:
直接上**:
待轉殖物件
let obj = ,
arr: [1,2,3],
reg: /abc\-001/,
regobj: new regexp(/abc/),
object:
},};
obj.loop = obj; // 迴圈引用
let sup =
}let objectsup =
}object.setprototypeof(obj, sup); // 根物件設定原型物件
object.setprototypeof(obj.object, objectsup); // 子物件設定原型物件
核心**
// 使用weakmap是便於**
function deepclone(obj, cachecurr = new weakmap()) ;
// 繼承原型
if(obj) object.setprototypeof(cloneobj,object.getprototypeof(obj));
// 普通引用型別及非引用型別轉殖,reflect.ownkeys能夠獲取自身所有屬性【非列舉也可】
for(let key of reflect.ownkeys(obj)) else
}return cloneobj;
}
**注釋感覺都寫的很清楚了。寫完這篇文章就可以安心的來一把無限火力了。
測試過挺多資料結構的都完美通過。如果有發現問題的同學幫忙指出來。感激不盡
讓面試官顫抖的Tomcat系統架構系列!
看懂了是一說法,理解又是一說法,能侃侃而談又是一說,好長時間不忘又是一說。今行健,以自強不息對於web開發的我們來說,與tomcat打交道,是非常的頻繁的,tomcat就是乙個小型的伺服器,我們可以訪問。目前同類中有jetty,做的比較好,它是採用nio,效能比較好。但是啊,tomcat已經進入市場...
讓面試官對你「一見鐘情」
都說管理是一門藝術而非技術,其實,道 和 術 在管理中總是相輔相成的,人才管理也不外乎此。利用 需求風格特徵 有針對性地做好員工的管理與激勵,是術的一種,更是道的體現。每年的這個時候,有很多同學已經走上工作的崗位,對於剛開始找工作的同學來說面試是個坎兒。其實這些問題無非歸類為兩種,一種是技能類的問題...
讓面試官顫抖的 HTTP 2 0 協議面試題
http協議,對於擁有豐富開發經驗的程式設計師來說簡直是信手拈來,家常便飯。雖然天天見,但是對於http協議的問題,可能很多人在沒有積極準備的情況下,不一定能很好的回答出來。今天,我們就來講講http 2.0和之前版本的區別。http協議 hypertexttransferprotocol,超文字傳...