艰难环境下,面腾讯、美团、商汤科技等七家大厂前端有感(1)

面试其实就是一个不断积累的过程,面得越多,越得心应手。我经历了十几轮面试,总结出了这几点经验:

1. 项目经历要仔细准备

不同的面试官会从不同的角度去考察你的项目经历。所以对于曾经做过的项目,一定要认真准备,把可能会问到的点都准备一遍。比如面试官在问到我开发的其中一个babel插件时,就提了以下问题:

  1. 这个babel插件的适用场景有哪些

  2. 开发这个babel插件遇到了哪些问题,怎么解决的

  3. 为什么会想到用babel方案去开发这个插件,调研流程是怎么样的

  4. 这个插件还有哪些可以优化的地方,怎么优化

  5. babel的preset和pollyfill可以互相替代吗,为什么可以/不可以

  6. babel7相较于之前做了哪些优化

一连串问题问下来,差点没扛住…

2. 每场面试结束都要及时复盘

每场面试下来一定要及时复盘。如果在家视频面试,可以提前录下面试过程。这样就能知道我们在面试中的表现。对于没回答上来的问题,一定要去做功课,完善自己的知识体系。

其实面得越多就会发现,考察的核心问题就那几个。面得越多,对这些问题的理解就越深刻,回答起来也更游刃有余。

3. 直面问题,不要答非所问

对于面试官的提问,一定要提炼出关键问题,然后针对关键问题作答。如果没有听懂,可以再问一遍 “能再说一遍你刚刚的问题吗”“您看我这么理解您的提问对不对…”,确认你的理解没有问题后再作答。

如果确实不了解面试官问到的问题,明确表示不了解就行。如果你答非所问,反而给面试官留下不好的印象,觉得你理解能力不行。

4. 分阶段准备

技术面一般有三面,我们可以分阶段准备面试。一面面试官是一线开发,会考察很多技术细节,所以这面要着重准备基础知识。

二面面试官是比较资深的开发,可能会问到框架底层原理,项目细节,当前流行的技术解决方案,比如微前端、SSR。我们要着重准备项目经历、技术实现方案和算法等。

三面面试官是技术负责人,负责人更多的是从宏观层面来考察候选人,比如候选人的学习能力、逻辑思维和表达能力。这些东西难以量化,需要长时间的培养。不过无论能力强弱,只要保持开放谦逊的态度,也能增加面试官对你的好感。

以上就是我的面试感悟啦,下面****附上面试真题。由于面试覆盖的内容很广,文章篇幅有限,没有附带答案,欢迎大家关注我的公众号与我探讨答案********~

6cc66147298aa72ac8daf270ba87a125.png

面试真题

2a9155cc8405f44fa764f63a8f21fe05.png

1. 美团

一面

  1. 曾经做过的最有挑战的一个项目

  2. DOM 的事件机制,怎么阻止事件捕获

  3. 常用的 ES6 语法有哪些,var 怎么实现let

  4. React Hooks vs Component

  5. React中的 useCallback 和 useMemo 有什么区别,什么情况下需要用 useCallback

  6. 浏览器的 Event Loop 机制

  7. setState 是同步还是异步的

  8. Set 的用法,用 Set 实现数组去重

  9. Graphql 的使用

  10. 移动端适配方案, rem 和 em 的区别

  11. React 解决了什么问题

  12. 前端跨域怎么做

  13. 编程题:用 setTimeout 实现 setInterval

二面

  1. Vue 的双向绑定机制

  2. 字节小程序和微信小程序区别

  3. React Fiber 机制

  4. React Hooks 的原理

  5. Node 遇到过哪些性能问题

  6. Node 做耗时的计算时候,如何避免阻塞

  7. 低代码平台运行时的生成逻辑

  8. 低代码平台性能优化

  9. 低代码平台组件发布流程

  10. 上家公司做了哪些事情以及做事的流程

  11. 未来职业规划

  12. 感兴趣的工作方向

  13. 编程题:输入两个数组 [1,2,3,2,1], [3,2,1,4,7]  返回公共的并且长度最长子数组的长度

三面

  1. 大文件的分片上传和断点续传怎么做的

  2. 抖音APP 与 H5 如何通信

  3. 现在需要用新技术,需要从哪些方面思考

  4. 如何针对性能指标做优化,有没有了解过业界的性能指标统计方式

  5. Express 和 Koa 的区别

  6. 项目经历

  7. 推动过什么事情

  8. 对下一份工作的期望

2. 商汤科技

一面

  1. less-loader 的 less 转成 css 的底层原理

  2. webpack的 loader 和 plugin 区别

  3. webpack 常用插件

  4. webpack 如何做代码拆分

  5. webpack tree shaking 原理

  6. webpack 动态导入原理

  7. webpack 热更新原理

  8. webpack5 新特性

  9. esm 和 commonjs 的区别

  10. TS 的 type 和 interface 的区别

  11. TS 怎么做枚举

  12. TS 泛型

  13. canvas 绘制流程,canvas 里的图片跨域怎么处理

  14. 项目经历:babel 插件的实现

  15. 编程题:实现一个深拷贝

二面

  1. 链表和线性表 crud 比较

  2. 了解哪些设计模式,实现其中一个设计模式

  3. canvas 绘制流程,遇到了哪些问题

  4. 从输入URL到浏览器显示页面过程中都发生了什么?

  5. 移动端布局方案

  6. 浏览器 Event Loop

  7. 对图形绘制了解多少

  8. ES6 为什么要转成 ES5

  9. H5 开发时遇到了哪些问题,怎么定位的

  10. DOM 事件流

  11. 平时怎么做性能优化

  12. 最有亮点的两个项目

三面

  1. HTTPS 加解密过程

  2. 哈希表原理,哈希碰撞时怎么处理

  3. 内存回收机制

  4. 栈内存和堆内存的概念

  5. 线上错误监控怎么做

  6. CI/CD 流程,有哪些改进点

  7. 进程间如何通信

  8. 低代码平台的实现

  9. 对下一份工作的期望

3. 神策

一面

  1. CSS 预处理器对比

  2. CSS 定位有哪些取值

  3. 原型与原型链,函数怎么实现继承

  4. this的指向,call、apply的区别

  5. Vue 3.0 和 2.0 区别

  6. Vue.$nextTick 作用

  7. Vue 和 React 的 diff 有什么区别

  8. proxy 拦截器的用法

  9. DNS 解析流程

  10. 事件循环

  11. 闭包和内存泄漏

  12. 最有亮点的一个项目

二面

  1. HTTP 幂等性定义和常用方法的幂等性

  2. redux 单向数据流有哪些优势,redux 中间件实现原理

  3. React HOC vs renderProps

  4. 浏览器里的线程与进程

  5. requestAnimationFram 与 requestIdleCallback 的区别

  6. npm管理痛点,如何解决

  7. gitflow流程、分支管理

  8. websocket建立连接过程

  9. 组件/工具库打包时的格式输出,如:CommonJS、ESM、UMD等,他们之间有什么区别

  10. Http 301、302 状态码的区别

  11. H5 性能优化

  12. 编程题:设计一个flat函数将如下数组arr=[1,2,[‘3’,4,‘5’,[6,[7,8],9]]]输出为1,2,‘3’,4,‘5’,6,7,8,9。至少写出两种方法,要求不能改变数组中的原始数据类型

三面

  1. BI 可视化系统介绍

  2. 在字节之后的提升有哪些

  3. 目前前端可以做的优化有哪些

  4. 新旧系统重构的时候,怎么过渡上线

  5. Vue React 的区别

  6. 字节小程序介绍一下

  7. 自己未来的规划。自己的优缺点、周围人人对自己的评价

  8. 如何学习一门新技术

  9. 对神策数据的了解

  10. 对大数据的了解

4. 王者荣耀

一面

  1. 进程通信的几种方式

  2. TCP/IP 如何保证传输稳定性

  3. 对称加密和非对称加密的使用场景

  4. 浏览器帧卡顿检测

  5. Vue 和 React的设计理念

  6. 性能指标FP、FCP和FMP分别跟哪些因素有关

  7. 低代码平台的技术原理

  8. 业界其他低代码平台实现方式,对比差异

  9. nginx怎么做反向代理与负载均衡

  10. 编程题:设计和实现一个 LRU (最近最少使用) 缓存机制,满足:1.获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。2.写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。

5. 天眼查

一面

  1. JS 有哪些数据类型

  2. JS 数据类型识别的方式,有什么缺点

  3. 原型和原型链,函数怎么实现继承

  4. new 发生了什么

  5. symbol 类型的用法

  6. script 标签里分别设置 defer 和 async, 它们的执行顺序是怎么样的

  7. React router 的两种模式模式,怎么动态获取路由上的 id

  8. redux 中间件的实现原理

  9. React 的 purecomponent 和 component 的区别

  10. generator 函数的用法

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后

一个好的心态和一个坚持的心很重要,很多冲着高薪的人想学习前端,但是能学到最后的没有几个,遇到困难就放弃了,这种人到处都是,就是因为有的东西难,所以他的回报才很大,我们评判一个前端开发者是什么水平,就是他解决问题的能力有多强。

分享一些前端面试题以及学习路线给大家

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

中…(img-qEhmYZoR-1712961974436)]
[外链图片转存中…(img-Ydf32KUP-1712961974437)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-AW5fKvDM-1712961974437)]

最后

一个好的心态和一个坚持的心很重要,很多冲着高薪的人想学习前端,但是能学到最后的没有几个,遇到困难就放弃了,这种人到处都是,就是因为有的东西难,所以他的回报才很大,我们评判一个前端开发者是什么水平,就是他解决问题的能力有多强。

分享一些前端面试题以及学习路线给大家

[外链图片转存中…(img-Monzu6Vn-1712961974437)]

[外链图片转存中…(img-FaGTabhp-1712961974438)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-3z3Cx3iA-1712961974438)]

  • 18
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值