这两个面试技术层面的问题较少,比较多的是项目层面的,故合为一篇。第一部分为58的
1.手写flat:多维数组转一维数组
// 法一
arr.flat(Infinity)
// 法二
const flat2 = (arr,ret = []) => {
arr.forEach((i,idx) => {
if(Array.isArray(i)){
flat2(i,ret)
}else{
ret.push(i)
}
})
}
// 法三
const flat3 = (arr) => {
arr.reduce((ret,cur)=>{
if(Array.isArray(cur)){
return ret.concat(flat3(cur))
}else{
return ret.concat(cur)
}
},[])
}
2.项目中是如何协作的,如何进行安全性监测,如何搭建cli
3.webpack有没有自己尝试搭建过
##############下面为滴滴
1.react的生命周期
2.react和vue的区别
3.react的hook和class的区别以及为何选择hook
4.会封装sdk吗,封装过公共组件库吗,会node吗,系统安全是怎么监控的
5.移动端适配是怎么做的
- rem
- rpx(微信,屏宽750,则1px=1rpx;屏宽620,则1px=(750/620)rpx)
- vw\vh