深拷貝方式1:json.parse(json.stringify(obj)),這種方式有很多缺點,會忽略undefined, symbol, 函式, 不能解決迴圈引用的問題,不能處理正則,new date()
以下深拷貝只考慮了物件和陣列的情況,其餘諸如date, function, regexp都沒有考慮
// 簡易版深拷貝
function
deepclone
(target,
set=
newweakset()
);// 使用set解決迴圈引用的問題if(
set.
has(target)
)set
.add
(target)
;for
(let key in target)
return clonetarget;
}else
}
手寫簡易版Promise
在完成符合 promise a 規範的 之前,我們可以先來實現乙個簡易版promise,因為在面試中,如果你能實現出乙個簡易版的promise基本可以過關了。那麼我們先來搭建構建函式的大體框架 const pending pending const resolved resolved const r...
手寫JS深拷貝
原始碼 支援拷貝string number boolean null undefined object function array regexp date 環 class deepcloner clone source else else if source instanceof function...
前端手寫系列 手寫reduce函式
reduce函式常用於對陣列,reduce函式接受3個引數 被迭代的陣列 用於迭代計算的函式 迭代的初始值 注意點 如果沒有提供初始值時,會預設使用陣列的第乙個元素來作為初始值 function reduce arr,callback,initialval 如果沒有將initialval傳遞給該函式...