若是offer还没来 level
美团_前端(准入职员工) identity
获赞
189
粉丝
44
关注
83
看过 TA
1880
门头沟学院
2025
前端工程师
IP属地:江苏
发面筋,攒人品!
私信
关注
08-08 12:58
已编辑
美团_前端(准入职员工)
#24届软开秋招面试经验大赏##关于提前批我想问#一面1. 自我介绍2. weirdwood 具体内容、源码3. react hook,有哪些,怎么用,用在哪里4. 性能优化(代码+打包)5. canvas6. es6 知道哪些7. this 8. 箭头函数9. 原型链10. 深拷贝 ,手写11. redux 源码12. 为什么学前端13. 怎么学前端14. 反问:业务和团队二面1. 自我介绍2. 性能优化相关3. 怎么做性能优化4. 首屏渲染5. 打包工具6. 测试用例7. 手撕 扁平化+去重+排序   concat 不改变原数组8. 兼容性9. babel 工作原理10. url 加载页面全过程11. 常见的排序算法,时间复杂度,应用场景12. 单元测试相关13. 遇到返回值随机的函数,怎么设计测试对于存在随机因素的函数,可以通过以下方法编写单测:  a. 依赖注入:将随机数生成器作为参数传入函数,在测试时传入固定的种子或模拟的随机数生成器。  b. Mock随机数生成器:使用Mock库来模拟随机数生成器的输出,使其生成固定的结果。  c. 重复测试:多次运行测试,确保在大多数情况下都能通过。14. 最近在学啥15. 反问  a. 业务:hc少,收到的简历多,竞争大(((#提前批简历挂麻了怎么办##如何判断面试是否凉了##我发现了面试通关密码##第一次面试#
0 点赞 评论 收藏
分享
08-09 14:30
已编辑
美团_前端(准入职员工)
三轮面试都在同一天一面● 自我介绍● 项目经历● React● http1 vs http2● vite● webpack 的 loader 和 plugin 用途,如何开发  ❌class MyPlugin {  apply(compiler) { compiler.hooks.compile.tap('MyPlugin', (params) => {      console.log('The compiler is starting to compile...');    }); compiler.hooks.compilation.tap('MyPlugin', (compilation) => {      console.log('The compiler is starting a new compilation...'); compilation.hooks.optimize.tap('MyPlugin', () => {        console.log('The compilation is starting to optimize assets...');      });    });  }}● 防抖节流    ● fiber● 数组转树  ❌二面● 自我介绍● 手写new ❌  写了好几个读程序题 demo 提醒我,感动  ○ 有reutrn 会覆盖 prototype  ○ 通过bind将 this 指向 继承了prototype 的新对象function _new(fn){  let obj = Object.creat(); // 继承  let ans = fn.call(obj,...args)     // 求返回值,绑定this  return ans instanceOf Object ? ans : obj }  ● 读程序题 promise● 异步编程● 手写 race● 手写对象扁平化● webpack   ○ plugin 运行时机  ❌● 初始化阶段:   ○ environment:在创建 compiler 环境之前。  ○ afterEnvironment:在 compiler 环境创建完成之后。● 配置阶段:   ○ entryOption:在 webpack 选项的 entry 配置项处理过程中调用。● 编译阶段:   ○ beforeRun:在开始读取记录之前。  ○ run:在开始读取记录之后,编译开始之前。  ○ watchRun:在监听模式下,一个新的编译周期开始时。  ○ beforeCompile:在创建compilation参数之后,执行编译之前。  ○ compile:在一个新的compilation创建之前。  ○ thisCompilation:在触发compilation事件之前执行。  ○ compilation:在compilation创建之后执行。● 构建模块阶段:   ○ make:在完成编译之前。  ○ afterCompile:在完成编译之后。● 优化阶段:   ○ shouldEmit:在输出 asset 之前调用。  ○ emit:在输出 asset 到输出目录之前。  ○ afterEmit:在输出 asset 到输出目录之后。● 输出阶段:   ○ assetEmitted:在 asset 被输出时。● 完成阶段:   ○ done:在 compilation 完成之后。  ○ failed:在 compilation 失败时。● 其他钩子:   ○ watchClose:在监听模式停止时。  ○ 为什么更慢 ,遍历所有文件● React 的渲染原理 FIber  ○ 箭头函数的原理,局限场景  ○ diff 算法的具体内容、策略● 监控白屏SDK 的思路  ○ a) 检测时机:    ■ 页面加载完成后(window.onload)    ■ 或使用 MutationObserver 监听 DOM 变化b) 检测方法:    ■ 截图法:使用 html2canvas 等库对页面进行截图,分析像素是否全白    ■ 元素检查法:检查页面上是否存在关键元素    ■ 采样法:elementFromPoint()   在页面的不同位置取样点,检查这些点上的元素是否存在且可见。如果大部分采样点都没有有效元素,我们就可以认为页面可能是白屏  ● 反问 ● 业务+规模三面● 自我介绍● 问的问题都是开发性的● 为什么选择前端● 如何学习的前端● React 和 vue 的区别● 前端的不同方向,设计的技术栈● 你希望哪个方向● to B 还是 to C● 低代码的经历● React 和 低代码有什么不同● 获得abc全排列所有序列,分别回溯求 子串● 求 得 abc 子串时 求子串的全排列function generateAllCombinations(str) {    const chars = str.split('');    const result = new Set();  // 使用 Set 来避免重复    // 生成所有子集(组合)    function generateSubsets(start, current) { if (current.length > 0) {            // 对当前子集生成所有排列            generatePermutations(current, 0);        }        for (let i = start; i             current.push(chars[i]);            generateSubsets(i + 1, current);            current.pop();        }    }    // 生成给定数组的所有排列    function generatePermutations(arr, start) {        if (start === arr.length - 1) {            result.add(arr.join(''));            return;        }        for (let i = start; i             [arr[start], arr[i]] = [arr[i], arr[start]];  // 交换            generatePermutations(arr, start + 1);            [arr[start], arr[i]] = [arr[i], arr[start]];  // 交换回来(回溯)        }    }    generateSubsets(0, []);    return Array.from(result);}// 测试console.log(generateAllCombinations("abc"));一面手撕没写出来,不知道是不是我三面挂的原因~#24届软开秋招面试经验大赏##第一次面试##我发现了面试通关密码##如何判断面试是否凉了##你的秋招进展怎么样了##滴滴#
0 点赞 评论 收藏
分享
@Thephim:
        有什么理由不选计算机?😤跨考计算机转码,是我一生最正确的决定。        计算机是最好的专业。只要刷刷LeetCode,打打ICPC,实习一两年,上线几个实际项目,GitHub贡献代码拿下300⭐,啃下四大件,背背八股文。面试易如反掌,性格测试、笔试、一面、二面、主管面、HR面,流程非常迅速。        BAT、字节华为、BYD理想小米、三大运营商数据中心,甚至是微软甲骨文,都争先为我送上offer。😎不会SpringBoot源码没关系,不了解Vue源码没关系,什么五面六面,转正无hc,泡池子,毁三方都是天方夜谭。实习Mentor对我多加赞赏,同事们都为我争取转正名额。跟部门Leader畅聊半小时,谈笑间我便成了正式员工。        你问薪资?20k也不过🥬价,年包50W真是唾手可得,像我们做机器视觉的学长学姐,已拿下腾讯、理想等年薪六七十万的offer,还有几十万股票分红和签字费。仅此而已?🧐不,我们计算机工作时间都是弹性8小时加双休,不存在996,更不可能是11116。公司允许居家办公,六险二金缴满,保障完整假期。        走亲戚时,父亲谈起我计算机毕业生的身份,骄傲的神情映满酒杯,母亲也恍然间焕发了青春。亲戚家的小孩们听着我讲解TCP三次握手四次挥手时,满眼羡慕、崇拜。🥰        回家途中遇到熟人,父母就跟他们炫耀:“我家孩子学计算机的,进了那个抖音公司呢!”对方突然激动起来:“😡我家小孩也是计算机本科毕业,怎么在那骑车送外卖🥡呐?”       此时,一旁忙着跟产品沟通需求的我冷笑道:“找不到工作不要怪专业。”       “再说了,有什么理由不选计算机?”
点赞 44
评论 11
0 点赞 评论 收藏
分享
● 自我介绍● 小程序使用量● 为什么用 Taro,你还知道哪些跨端的● 你遇到了什么问题,怎么解决,哪些没解决● 你说说 缓存 和 缓冲 的概念  ○ 缓冲❌  :凡是使某种事物进行减慢或减弱变化过程都可以叫缓冲    ■ 从生活中去找例子,脂肪    ■ 大文件上传怎么做,分片上传    ■ 从上面两个示例中提取一下缓冲的概念● html 在浏览器展示的过程中有哪些地方会阻塞  ○ 加载方面:html、css、js  ○ 其他 ❌    ■ 大量数据处理    ■ 长时间运行的脚本    ■ 频繁的 DOM 操作    ■ alert(● 请你说说 http 各个版本之间的差异  ○ 1.1     ■ 新增了几种请求方法:put、delete、option、    ■ 增加了对请求/响应体的压缩支持,减少了延迟和带宽消耗  ○ 2    ■ 请求优先级的概念  ○ 3    ■ udp 丢包 成本低  ○ http1.1 给了浏览器websoket,http 2 和  3 给浏览器提供了哪些 新特性  ❌  ○ 用过哪些版本,用来干嘛● 你玩什么游戏● 印象深刻的游戏运营 h5  ○ 看过源码吗  ○ 写这些 h5 主要的困难是哪些● 你知道前端有哪些方向吗  ○ 你喜欢什么方向● 反问  ○ 做啥的,围绕游戏的 web 服务?  ○ 有 wasm 相关的实践吗?
查看9道真题和解析
0 点赞 评论 收藏
分享
04-16 16:15
已编辑
美团_前端(准入职员工)
● 自我介绍● 项目遇到过什么困难● 小程序重构背景● 访问 qq 官网,输入url 过程● DNS 展开说说● https 和 http 的区别  ○ 有哪些加密算法  ○ 如何加密  ○ 对称 和 非对称 有什么区别● tcp 为什么是三次,而不是二次四次● 访问 墙外网站 会有什么不同(想问 https 加密后怎么被墙的) ❌● HTTPS防火墙工作原理HTTPS防火墙要做的一件事就是,强制安装一个证书到“受信任”列表中(也就是上图我涂黑的那两个证书,就是HTTPS防火墙为了能够工作,强制IT部门安装到每个公司的PC上的)。有了这个“受信任”证书,HTTPS防火墙,也就是中间人,即可把任何想要监听的网站的证书,都替换成这个“受信任”证书,之后通过HTTPS防火墙内置的私钥,解开客户端到服务器之间的全部加密通信。这种方式是有很大的安全风险的,因为,如果HTTPS防火墙本身被攻击,私钥泄漏,那么在公司上网将不再安全,所有HTTPS网页上的密码,都可能有泄漏的危险,比如知乎、微博等网站,仅仅依靠HTTPS加密来保证登录密码的安全,这些密码都不再安全。● 做题  ○ 事件循环  ○ this 指向 ❌ var a = 20;function foo() {    var a = 10;    var obj = {        a: 1,        c: this.a + 20,        fn: function () {            return this.a;        },    };    return obj;}foo().c;window.foo().c;foo.fn();// use strictfoo().c;window.foo().c;foo.fn();  ○ 失败重连 好像没完全写对( ❌ ● 反问  ○ 腾讯云做SDK的,注重 JS 基础和计网基础
0 点赞 评论 收藏
分享
● 自我介绍● 看你写的都是React  ○ 函数式组件有哪些 对应于 类组件的生命周期  ○ 自定义 hook 咋写的,做了哪些处理  ○ VDOM 和 直接操作 DOM 哪个好● CSS  ○  垂直居中    ■ line-height    ■ flex    ■ top 、transform  ○ 对回流和重绘有什么理解  ○ BFC ,如何触发,实际场景,边距重叠的解法 ,多种❌    ■ 触发规则      ● 脱离文档流的定位(positon:absolute / fix)      ● display : float、inline-block 的元素      ●  flex、grid 布局中的子元素      ● overflow 值为:hidden、auto、scroll;    ■ 边距重叠解法(将其中一个触发BFC即可)      ● inline-bolck      ● flex/grid      ● ● JS  ○ 事件循环  ○ 知道哪些异步事件● 项目:实习做过最难的,业务上最难的  ○ 水印,点击穿透 ❌    pointerEvents: 'none',  ○ 监控报警    ■ 如何追查    ■ 监控那些错误  ○ 开发流程  ○ 埋点,有了解过数据发给后端之后到可视化平台的整个链路吗 ❌(反问才知道面试官是数据团队的)● 八卦  ○ 在走哪些公司的流程  ○ 对那些公司有倾向性  ○ 为什么学前端  ○ 大学期间的学习成果,学习方向● 反问  ○ 氛围、业务
0 点赞 评论 收藏
分享
自我介绍简历上说平时有折腾提高效率的工具,展开说说平时怎么学习前端?看过什么书最近在看什么技术好,面试开始(this 指向如何理解看题说答案手写一个 bind 试试看? ❌  说了思路..li 一堆事件冒泡如何处理React 中怎么做呢异步有哪些promiseasync awaitsettimeout如何捕获异步的错误有哪些是catch ,try catch 捕获不到的 ❌  异步函数    try catch  和 promise.catch  不能捕获异步函数里的报错, 宏任务 和 微任务都不行高阶组件了解吗,使用场景lambda 表达式 了解吗箭头函数八股文函数柯里化 手写一下纯函数模块化的了解有什么区别,如何实现有什么应用React 为什么不能在逻辑判断中写useEffect ❌ 执行时机问题——逻辑判断在组件实例化时执行,而useEffect 在页面完成 commit /paint 后执行(GPT):关于为什么不推荐在逻辑判断中调用useEffect,原因是出于代码可读性和可维护性的考虑。由于useEffect是在组件渲染之后执行的,如果将其放在逻辑判断中,可能会导致useEffect的触发时机不准确。这可能会导致副作用的执行顺序出现问题,或者导致副作用被重复执行或不执行的情况。存储在组件的fiber 节点中,如果用条件判断可能会造成混乱?你觉得 React 有什么缺点 (你读过 React 的源码吗,读过哪些useTransition、useDeferrdValue (面试官没听说过...)Fiber 的同步和异步 ,他也不懂(,我就疯狂吟唱了算法题 区间数组合并反问前端业务、氛围如何更全面深入的了解 类似 前面那些没答上来 的问题多实践看看书
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务