艰难环境下,面腾讯、美团、商汤科技等七家大厂前端有感
资料过多,篇幅有限自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
正文
每轮面试都有2-3分钟的自我介绍,可以先礼貌地跟面试官打个招呼,然后再介绍自己的一些情况,比如基本信息、工作经历、离职原因等。自我介绍有两点需要注意:
1. 不要聊项目细节
自我介绍阶段不要聊项目细节,很耽误时间。面试官如果感兴趣,自己会问。让你自我介绍只是想对你的情况有个大致的了解,如果一上来就开始滔滔不绝,反而打乱了面试官的面试计划。
2. 脱稿自我介绍
有的人可能没准备自我介绍,等问到的时候才打开简历照着念,这会给面试官留下非常不好的第一印象。大家可以提前把自我介绍背下来,等问到的时候就可以信手拈来了。

面试总结

面试其实就是一个不断积累的过程,面得越多,越得心应手。我经历了十几轮面试,总结出了这几点经验:
1. 项目经历要仔细准备
不同的面试官会从不同的角度去考察你的项目经历。所以对于曾经做过的项目,一定要认真准备,把可能会问到的点都准备一遍。比如面试官在问到我开发的其中一个babel插件时,就提了以下问题:
-
这个babel插件的适用场景有哪些
-
开发这个babel插件遇到了哪些问题,怎么解决的
-
为什么会想到用babel方案去开发这个插件,调研流程是怎么样的
-
这个插件还有哪些可以优化的地方,怎么优化
-
babel的preset和pollyfill可以互相替代吗,为什么可以/不可以
-
babel7相较于之前做了哪些优化
一连串问题问下来,差点没扛住…
2. 每场面试结束都要及时复盘
每场面试下来一定要及时复盘。如果在家视频面试,可以提前录下面试过程。这样就能知道我们在面试中的表现。对于没回答上来的问题,一定要去做功课,完善自己的知识体系。
其实面得越多就会发现,考察的核心问题就那几个。面得越多,对这些问题的理解就越深刻,回答起来也更游刃有余。
3. 直面问题,不要答非所问
对于面试官的提问,一定要提炼出关键问题,然后针对关键问题作答。如果没有听懂,可以再问一遍 “能再说一遍你刚刚的问题吗”“您看我这么理解您的提问对不对…”,确认你的理解没有问题后再作答。
如果确实不了解面试官问到的问题,明确表示不了解就行。如果你答非所问,反而给面试官留下不好的印象,觉得你理解能力不行。
4. 分阶段准备
技术面一般有三面,我们可以分阶段准备面试。一面面试官是一线开发,会考察很多技术细节,所以这面要着重准备基础知识。
二面面试官是比较资深的开发,可能会问到框架底层原理,项目细节,当前流行的技术解决方案,比如微前端、SSR。我们要着重准备项目经历、技术实现方案和算法等。
三面面试官是技术负责人,负责人更多的是从宏观层面来考察候选人,比如候选人的学习能力、逻辑思维和表达能力。这些东西难以量化,需要长时间的培养。不过无论能力强弱,只要保持开放谦逊的态度,也能增加面试官对你的好感。
以上就是我的面试感悟啦,下面****附上面试真题。由于面试覆盖的内容很广,文章篇幅有限,没有附带答案,欢迎大家关注我的公众号与我探讨答案********~

面试真题

1. 美团
一面
-
曾经做过的最有挑战的一个项目
-
DOM 的事件机制,怎么阻止事件捕获
-
常用的 ES6 语法有哪些,var 怎么实现let
-
React Hooks vs Component
-
React中的 useCallback 和 useMemo 有什么区别,什么情况下需要用 useCallback
-
浏览器的 Event Loop 机制
-
setState 是同步还是异步的
-
Set 的用法,用 Set 实现数组去重
-
Graphql 的使用
-
移动端适配方案, rem 和 em 的区别
-
React 解决了什么问题
-
前端跨域怎么做
-
编程题:用 setTimeout 实现 setInterval
二面
-
Vue 的双向绑定机制
-
字节小程序和微信小程序区别
-
React Fiber 机制
-
React Hooks 的原理
-
Node 遇到过哪些性能问题
-
Node 做耗时的计算时候,如何避免阻塞
-
低代码平台运行时的生成逻辑
-
低代码平台性能优化
-
低代码平台组件发布流程
-
上家公司做了哪些事情以及做事的流程
-
未来职业规划
-
感兴趣的工作方向
-
编程题:输入两个数组 [1,2,3,2,1], [3,2,1,4,7] 返回公共的并且长度最长子数组的长度
三面
-
大文件的分片上传和断点续传怎么做的
-
抖音APP 与 H5 如何通信
-
现在需要用新技术,需要从哪些方面思考
-
如何针对性能指标做优化,有没有了解过业界的性能指标统计方式
-
Express 和 Koa 的区别
-
项目经历
-
推动过什么事情
-
对下一份工作的期望
2. 商汤科技
一面
-
less-loader 的 less 转成 css 的底层原理
-
webpack的 loader 和 plugin 区别
-
webpack 常用插件
-
webpack 如何做代码拆分
-
webpack tree shaking 原理
-
webpack 动态导入原理
-
webpack 热更新原理
-
webpack5 新特性
-
esm 和 commonjs 的区别
-
TS 的 type 和 interface 的区别
-
TS 怎么做枚举
-
TS 泛型
-
canvas 绘制流程,canvas 里的图片跨域怎么处理
-
项目经历:babel 插件的实现
-
编程题:实现一个深拷贝
二面
-
链表和线性表 crud 比较
-
了解哪些设计模式,实现其中一个设计模式
-
canvas 绘制流程,遇到了哪些问题
-
从输入URL到浏览器显示页面过程中都发生了什么?
-
移动端布局方案
-
浏览器 Event Loop
-
对图形绘制了解多少
-
ES6 为什么要转成 ES5
-
H5 开发时遇到了哪些问题,怎么定位的
-
DOM 事件流
-
平时怎么做性能优化
-
最有亮点的两个项目
三面
-
HTTPS 加解密过程
-
哈希表原理,哈希碰撞时怎么处理
-
内存回收机制
-
栈内存和堆内存的概念
-
线上错误监控怎么做
-
CI/CD 流程,有哪些改进点
-
进程间如何通信
-
低代码平台的实现
-
对下一份工作的期望
3. 神策
一面
-
CSS 预处理器对比
-
CSS 定位有哪些取值
-
原型与原型链,函数怎么实现继承
-
this的指向,call、apply的区别
-
Vue 3.0 和 2.0 区别
-
Vue.$nextTick 作用
-
Vue 和 React 的 diff 有什么区别
-
proxy 拦截器的用法
-
DNS 解析流程
-
事件循环
-
闭包和内存泄漏
-
最有亮点的一个项目
二面
-
HTTP 幂等性定义和常用方法的幂等性
-
redux 单向数据流有哪些优势,redux 中间件实现原理
-
React HOC vs renderProps
-
浏览器里的线程与进程
-
requestAnimationFram 与 requestIdleCallback 的区别
-
npm管理痛点,如何解决
-
gitflow流程、分支管理
-
websocket建立连接过程
-
组件/工具库打包时的格式输出,如:CommonJS、ESM、UMD等,他们之间有什么区别
-
Http 301、302 状态码的区别
-
H5 性能优化
-
编程题:设计一个flat函数将如下数组arr=[1,2,[‘3’,4,‘5’,[6,[7,8],9]]]输出为1,2,‘3’,4,‘5’,6,7,8,9。至少写出两种方法,要求不能改变数组中的原始数据类型
三面
-
BI 可视化系统介绍
-
在字节之后的提升有哪些
-
目前前端可以做的优化有哪些
-
新旧系统重构的时候,怎么过渡上线
-
Vue React 的区别
-
字节小程序介绍一下
-
自己未来的规划。自己的优缺点、周围人人对自己的评价
-
如何学习一门新技术
-
对神策数据的了解
-
对大数据的了解
4. 王者荣耀
一面
-
进程通信的几种方式
-
TCP/IP 如何保证传输稳定性
-
对称加密和非对称加密的使用场景
-
浏览器帧卡顿检测
-
Vue 和 React的设计理念
-
性能指标FP、FCP和FMP分别跟哪些因素有关
-
低代码平台的技术原理
-
业界其他低代码平台实现方式,对比差异
-
nginx怎么做反向代理与负载均衡
-
编程题:设计和实现一个 LRU (最近最少使用) 缓存机制,满足:1.获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。2.写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。
5. 天眼查
一面
- JS 有哪些数据类型
最后


资料过多,篇幅有限
自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
低代码平台的技术原理
-
业界其他低代码平台实现方式,对比差异
-
nginx怎么做反向代理与负载均衡
-
编程题:设计和实现一个 LRU (最近最少使用) 缓存机制,满足:1.获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。2.写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。
5. 天眼查
一面
- JS 有哪些数据类型
最后
[外链图片转存中…(img-qNbe2giZ-1713096621129)]
[外链图片转存中…(img-DHAGwDGK-1713096621130)]
资料过多,篇幅有限
自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-S4TbdUQd-1713096621132)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更多推荐



所有评论(0)