美团前端一面面经

美团一面 (50 min) 已凉~~

发个面经保佑一面能过吧
顺序大概是

  1. 自我介绍

  2. 问了下项目中用到了响应式的适配,说了下用了 rem (然后没有追问,可能是想让我自己说)

  3. 项目中的首屏优化(路由懒加载,图片懒加载)

  4. 项目中有没有用到什么新技术说了下 vue3,然后提到了 proxy,问了 vue3 中响应式数据如何收集依赖

  5. 路由懒加载说了下 es6 的 import 函数以及需要分包

  6. 说了下图片懒加载的实现原理

  7. 图片懒加载中如何判断的图片快达到视口,说了三种

    • element.offsetTop - document.documentElement.scrollTop <= window.innerHeight
    • getBoundingClientRect
    • IntersectionObserver
  8. 项目的登录注册

  9. webpack 中 loader 和 plugin 区别

  10. 问了有没有了解其他构建工具,说了 vite 讲了讲(了解的不多)

    八股

  11. 响应状态码 100、101、200、301、302、304、403、404、500

  12. http2~http3

    开始问基础

  13. css 动画 (transition、animation)

  14. 举了个例子说用 js 一帧一帧绘制和用 css 动画哪个更优(因为不知道,从 cpu 和 gpu 方面来讲)

突然想起来,面试官应该是想考我关于浏览器渲染机制方面的问题(简历上写了),js 的执行会挂起 GUI 线程,如果使用 js 来绘制动画的话会阻塞 html 的解析导致渲染树构建被延迟。

后来去查了一下,关于这方面牵扯的还是挺多的,可以看以下两篇文章。

JS 动画比 CSS3 动画性能谁更好? - 知乎 (zhihu.com)

CSS and JavaScript animation performance - Web 性能 | MDN (mozilla.org)

  1. gpu 为什么更快(瞎扯)

  2. 事件循环说一说

  3. 事件循环题目

    setTimeout(() => {
      new Promise(res => {
        console.log(2);
        res();
      }).then(() => {
        console.log(1);
      });
      console.log(4);
    }, 0);
    setTimeout(() => {
      console.log(3);
    });
    console.log(5);
  4. sum(1)(2)(3),写的不是很好面试官给提示了

function cureer(fn) {
  let params = [];
  return function newFn(...newParams) {    // 这里剩余参数漏了提醒一次
      params = [...params, ...newParams]
    if(params.length === fn.length) {
      return fn(...params);    // 这里扩展运算符漏了没看出来提醒了一次
    } else {
      return newFn
    }
  }
}
function getSum(a, b, c) {
  return [...arguments].reduce((a, b) => a + b, 0);
}
const sum = cureer(getSum);
console.log(sum(1)(2)(3));
  1. 归并排序,合并有序列表写糊涂了,后面重写了

  2. 反问,问了部门做什么的以及学习建议,建议多了解一些前端的新知识提到了一开始说的 vite

面试体验很好,总体来说不难,前端工程化了解的不多答的也不是很细,http 问了好多我也不知道为什么,就把知道的都给说了,也给了提示,面试官好喜欢笑搞得我也忍不住笑。

#美团暑期实习##实习##面经#
全部评论
楼主base 哪里呀
1 回复
分享
发布于 2022-04-01 17:20
请问sum(1)(2)(3)是完全自己实现嘛?还是有要求
1 回复
分享
发布于 2022-04-03 19:46
小红书
校招火热招聘中
官网直投
好详细,谢谢大佬分享
点赞 回复
分享
发布于 2022-04-03 20:50
lz 哪个部门啊
点赞 回复
分享
发布于 2022-04-08 16:00
东理小学弟呀
点赞 回复
分享
发布于 2022-04-17 22:28
为啥凉了啊
点赞 回复
分享
发布于 2022-04-21 11:26
为啥凉了啊
点赞 回复
分享
发布于 2022-04-21 11:29

相关推荐

二面是电话面,早上直接发下午的面试通知(傲娇的鹅),面了四十分钟左右。1、自我介绍2、看你做过微信小程序开发,它和其它常规的前端开发有什么区别?3、写小程序项目时有遇到过什么坑吗?怎么解决的?4、你提到了缓存解决,那常用的缓存及使用场景是什么?5、我对你这个个人项目比较有兴趣,问一下你的音视频通话用了什么技术实现的?6、里面有断线重连这种机制吗?如果没有你现在可以说下思路吗?(寄)7、websocket自带了心跳检测吧,你想过怎么利用吗?(寄)8、websocket基于tcp还是udp?为什么?给点提示,websocket和socket差了前面三个字母。(寄)9、用到过哪些设计模式?(寄,不应该乱扯,本来扯着设计模式,扯到了vue源码用二进制数表示枚举类型)10、那它为什么用二进制表示?(寄,属于乱答了,答了和直接字符串比较相比,比较起来性能更好。。。)11、你为什么认为直接比较字符串性能不好?(寄,到这里已经汗流浃背了,又乱答了一个什么计算机底层都是01二进制)12、你知道字符串比较算法吗?要你写一个是怎么写的?(寄,没反应过来是问数据结构课上的字符串比较知识,kmp什么的。面试官还说kmp其实不难,说很长时间没看忘了只是因为我还没真正理解,单纯背那个内容罢了。。。)13、说一下快速排序的思路?最好情况和最坏情况分别是怎么样的?14、你提到快排是一种不稳定的排序,那排序算法的稳定性指的是什么?如何测定这个稳定性?(第二个问题又寄了。。。)15、面试官锐评:通过看你的简历,你的实践和动手能力应该是有的,但其实这些东西对于大家都是名校的同学来说,学会都是很快的,不会有什么壁垒。对于校招生,我们更多的还是考察基础原理方面的知识,以及个人的一些额外思考。(寄,说得很有道理,但是我是菜逼。)总结:怀疑对面的面试官大佬看我像培训班出来的一样,很多提问会深挖计算机科班知识,而且鼠鼠乱扯了很多,导致面试官有见缝插剑的机会,鼠鼠已经忘了很多了,悲,连反问的机会都不给,直接寄。#春招##0offer#
投递腾讯等公司8个岗位
点赞 评论 收藏
转发
11 94 评论
分享
牛客网
牛客企业服务