鼠鼠的美团面试之旅

美团的面试总共面了两次,一次一面挂,一次一面oc,两次的面试内容整体上都不难,面经附上:

美团一面:
1. 面试官先自我介绍了一波
2. 计算机基础
    - 问了学了哪些数据结构
        -我答了栈,队列,树,图之后他问我还有吗,我又答了一些和算法结合比较紧密的数据结构,树状数组,然后给他解释啥是树状数组
    - tcp和udp
    - http和https的区别
3. 前端
    - 事件循环,为什么要区分宏任务和微任务
    - 问我react类组件和函数组件的区别,
        -我说我学的时候已经是React18 了,类组件已经不用了,然后给他解释了一下函数组件
    - 问我用过哪些hooks
4.手写题
    - 合并两个已经排好序的升序数组,返回一个升序数组,EZ
第一次面试我感觉挺简单的,自己基本都答上来了,不知道是不是因为react不会类组件的原因,一面给挂掉了

美团一面:
1. 面试官自我介绍
2. 问了一下项目,
3. 前端
    - 盒模型
    - js的基本数据类型
    - ES6的新语法
        - 我把自己能想起来的都答了,结构赋值,promise,let,const,在她的提醒下又补充了一些
        - 给了一道let,const,var的输出题,相当简单
    - 问了一些git的知识,但是鼠鼠我平时一个人做项目就只用过pull,push这些比较基础的,面试官问了一些深入的没答出来,不过她好像不是很在意
    - TS
        - 泛型
        - 联合类型和交叉类型
    - 框架
        - React和Vue中分别是如何监听组件渲染完成的
4. 手写题
    - 获取url的参数
    - 一道proimise的手写题,控制两个请求后渲染完成的顺序,具体题目记不太清了,总之鼠鼠在她的提示下才写出来

这次的面试官是个姐姐,答得有瑕疵的地方她会帮你指出来,人很好。
大体就是这些了,周四面试完,下一周的周一收到hr的电话。

找了一个月的前端日常实习,前前后后大概经历了十几次的面试,总算是有offer进帐了。中间有一周简直是至暗时刻,约不到面试,面过的又因为各种原因给挂掉了,到这周面试才陆陆续续的约上。

总体而言,鼠鼠面过的公司里美团的算是比较简单的了,考察的重心在计算机基础和前端基础,项目问的倒是不多。不知道这种情况算不算是鼠鼠的个例,不过还是分享给大家,大家自己去根据实际情况去评判了。
全部评论
后续:鼠鼠拒绝了美团的offer,鼠鼠不是北京的,280/天鼠鼠可能还得倒贴。
1 回复 分享
发布于 01-02 20:39 湖北
1 回复 分享
发布于 2024-12-25 16:58 湖北
接好运
1 回复 分享
发布于 2024-12-24 22:03 广东
佬是几月份投的
1 回复 分享
发布于 2024-12-24 15:43 四川
佬,为啥你还能有面试,我都已经老实了,大厂就小红书base广州给了面试
1 回复 分享
发布于 2024-12-24 15:18 湖南
佬 你投的哪个部门的呀 直接一面过了hr面吗
点赞 回复 分享
发布于 02-13 17:17 湖北
美团面试挂会有感谢信吗请问
点赞 回复 分享
发布于 01-19 01:00 广西

相关推荐

👋个人背景:民办本 双非硕 两段中厂实习从二月底陆陆续续投简历,除了字节腾讯外都投了个遍(挺后悔的,应该面一面涨涨经验,但现在累了)阿里系     简历挂,无一例外,全挂京东        泡池子快手        简历挂了五次美团        第一轮三面挂 第二轮二面,目前等消息百度        oc已接b站         日常oc,暑期泡池子网易        雷火日常一面挂 暑期二面挂小鹅通     oc已拒小红书     简历挂理想        简历挂作业帮     简历挂米哈游/pdd    笔试挂感觉比较友好的就是美团,基本都会给面并且面试就按照简历来,面试官也很好。第一轮面试三面挂的时候很气馁,大概在三月底,然后休息了半个月才开始投其他的暑期。总结来看其实暑期运气成分还是挺高的,前端对算法和场景手撕有一定要求,感觉大多还是在hot100的范围内,准备好八股和算法基本上问题不大,再加上先前实习和投递部门的契合度。接下来也不打算再投了,就这样结束暑期吧,成为百度孝子,秋招再见👋
点赞 评论 收藏
分享
好伤心,面试官结束时候评价是整体还行,等视频挂了5分钟内收到感谢信这前后反差,我只好安慰面试官尊重自己,但是谁来安慰我呀面试上来开始问八股1,说说 url到浏览器页面显示整个过程2,http 缓存3,流式输出,你知道哪些可以实现的方式?AI生成到前端你觉得采用那种方式?3,css 设置的元素要不断旋转,怎么写(不到一分钟面试官问我是否会,不会可以换一题,那我还行想到用什么,那换一题吧)keyfram 里面设transform;animation 里面应用设定的spin;代码如下:(linear 匀速转,infinite 无限循环)@keyframes spin {    from {        transform: rotate(0deg);    }    to {        transform: rotate(360deg);    }}.spinner {    animation: spin 2s linear infinite; /*持续2秒 转一圈*/}4,输出解释题:function app() {    const [count, setCount] = useState(0)    useEffect(() => {        const interval = setInterval(() => {            console.log('useEffect')            setCount(count + 1)        }, 1000)    }, [])     return (        <div>            <h1>{count}</h1>        </div>     )}会输出打印什么?h1位置 count 显示什么那当然每隔1s 打印出0,页面显示也是05,好的,你分析他原来想要实现什么效果,然后现在这段代码怎么改能实现预期效果,你有几种方式?【用useRef 、手写update函数,设定count 动态依赖项,使用setTimeout 递归(但是容易爆栈)】我当时有点懵,当然是没考虑到function app() {    const [count, setCount] = useState(0)    const countRef = useRef(count);    useEffect(() => {        setInterval(() => {            console.log('count', count);            // setCount(count + 1)            setCount(countRef.current + 1)        }, 1000)    },[])    useEffect(() => {       const update = () => {        console.log('update')        setCount(count + 1)         setTimeout(update, 1000) // 递归调用, 会导致栈溢出       }        update(); // 初始调用    })    useEffect(() => {        const interval = setInterval(() => {            console.log('useEffect')            setCount(count + 1)        }, 1000)    }, [count]) // 动态依赖,但是频繁定时器创建和销毁    return (        <div>            <h1>{count}</h1>        </div>     )}7,输出顺序是什么?function app() {        promise.resolve().then(() => {        console.log('promise')    })    useEffect(() => {        console.log('useEffect')    }, [count])    useLayoutEffect(() => {        console.log('useLayoutEffect')    }, [count])    return (        <div>            <h1>{count}</h1>        </div>     )}输出:useLayoutEffect promiseuseEffectuseLayoutEffect(dom更新后,相当浏览器刷新渲染了,立即同步执行)、promise (微任务,在同步执行完清空微任务队列)useEffect(异步执行,事件循环后执行)期间问了useLayoutEffect 和 useEffect 区别8,看下面输出什么?(弱弱心想:不能出点其他的吗?)function Foo() {    getName = function () {        alert(1);    }    return this;}Foo.getName = function () {    alert(2);}Foo.prototype.getName = function () {    alert(3);}var getName = function () {    alert(4);}function getName() { alert(5); }Foo.getName(); // 2getName(); // 4Foo().getName(); // 1getName(); // 1new Foo.getName(); // 2new Foo().getName(); // 3new new Foo().getName(); // 3看这是金典js输出,但是解释起来费劲呀,解释不断问我:变量提升到哪,函数提升到哪,可以修改一下代码看看提升到的位置,new 关键字分析一下,作为普通函数调用还是.... (问下牛友,这种题目去那找能复习到呀)9,写个sum函数实现下面输出:console.log(sum(1,2,3).sumOf()); // 6console.log(sum(1,4)(2).sumOf()); // 7console.log(sum(1)(2)(3)(4).sumOf()); // 10function sum(...args) {    let total = args.reduce((acc,cur) => acc + cur,0);    function innerSum(...newArgs) {        total += newArgs.reduce((acc,cur) => acc + cur,0);        return innerSum;    }    innerSum.sumOf = () => total;    return innerSum;}console.log(sum(1,2,3).sumOf()); // 6console.log(sum(1,4)(2).sumOf()); // 7console.log(sum(1)(2)(3)(4).sumOf()); // 10
点赞 评论 收藏
分享
评论
9
21
分享

创作者周榜

更多
牛客网
牛客企业服务