vlambda博客
学习文章列表

为什么我要开源这个github

你们有没有在准备面试的过程中,当你去找面经的时候,只有一些题目汇总。当你要复习某一个知识点的时候,比如说,浅拷贝的方法,你在回答面试官的时候肯定要尽可能全,这样才能折服面试官,但是你、一般来说只能找出几种,找不全,这样就会很烦,找半天,复习体验很不好。


我的开源项目名字叫fullAnswer,意思就是满分回答。我希望有一天,前端er们跳槽前准备面试的时候,不用担心自己的回答不够全面,面试官不够满意,在我这里,我会写出每道题目最全,让面试官亮瞎眼的回答。


当前我采用的方式是issue+回答。



就拿浅拷贝来说,我被面试官问到浅拷贝还有没有其他方案,但是我只回答了三点,因此我去搜索答案,目前收集了7个方法。我希望还能再找到其他方法,我会把它update在我的回答上

浅拷贝

方法一:Object.assign
const b=Object.assign([],a)//赋值如果是对象,[]改成{}
方法2:...
const b=[...a]//赋值如果是对象,[]改成{}
方法3:concat
const b=[].concat(a)
方法4:slice
const b=a.slice()
方法5:for in

function cloneShalow(obj){
const res=Array.isArray(obj)?[]:{}
for(let key in obj){
if(obj.hasOwnProperty(key)){
res[key]=obj[key]
}
}
return res
}

方法6:
const b=Array.from(a)//只用于数组
方法7:
const b=a.map(item=>item)//只用于数组

最后:希望大家能有一个好的offer