当前位置: 首页 > 面试经验 >

美团到家前端一面 8.30 舔狗本狗

优质
小牛编辑
87浏览
2023-08-30

美团到家前端一面 8.30 舔狗本狗

看我实习多,没怎么问基础,盯着简历问

  1. 屏幕适配,遇到的问题,怎么解决,原因。举了个实习的例子,某个tab栏切换会卡到屏幕中间。postCss,pxtorem遇到的问题。
  2. react用的版本,原理。答:虚拟dom,diff,fiber,任务优先级划分。
  3. 为什么要impoer React。答:用于jsx转换虚拟dom。React.createElement.。个人延伸:不import报错,有些eslint规则会自动去除noused,所以这一块要注意。
  4. 状态管理库。我用recoil,怎么用,原理,其他,redux,原理。
  5. ts,omit,原理。乱答:1.name?:改为可选 2.使用& | 进行去除。泛型是什么,应用场景。
  6. 手写useFetch

 const { run, data = [], loading = false, error = '' } =useFetch(initParam,fn)

function useFetch(initParam,fn){
    const [data,setData]=useState(null)
    const [loading,setLoading]=useState<boolean>(true)
    const [error,setError]=useState('')
    const [param,setParam]=useState(initParam)
    const [isRun,setRun]=useState()
    useEffect(()=>{
        async fucntion myRequset(){
            if(isRun){
                try{
                    let res=await fn(param)
                    if(res.status==200){
                        setData(res)
                    }
                }catch(e){
                    setError(e)
                }finally{
                    setLoading(false)
                }
        }
        myRequset()
       },[isRun,param,...])
    return {
        run:(param)=>{
            setRun(true)
            setParam(param)
        },
        loading,
        error,
        data
    }
}
  1. 一个回文数字串,判断是否回文。不能转字符串做。

我这题直接用转字符串做了。

  1. 给出一个promise数组,写一个方法按顺序执行。有两个思路。自己用async/await实现了,没跑。reduce,没时间写。
async function timer(tim) {
  const data = await new Promise((resolve, _) => {
    setTimeout(() => {
      resolve(tim);
    }, tim);
  });
  return console.log(data);
}

function orderPromise2(parr) {
  return parr.reduce((a, b) => {
    return a.then(() => b());
  }, Promise.resolve());
}
let arr = [
  () => timer(5000),
  () => timer(3500),
  () => timer(2000),
  () => timer(500),
];
orderPromise2(arr);

async function orderPromise(parr) {
  for (p of parr) {
    await p();
  }
}
orderPromise(arr);

最后是舔狗环节,第一次舔,不知有没有用。下来多练练,嗯我指的是,舔。

#美团前端#
 类似资料: