分享一位同学的阿里、百度前端面经,CSS的行内样式与内联样式

13)JavaScript 是如何操作 Cookie 的?

DOM API:

这方面也很少被问到,印象中有这几道:

1)如何翻转 DOM?冒泡和捕获机制,实际应用有哪些?

2)冒泡和捕获机制,以及实际应用?

  1. 前端框架的底层原理

我们以 React 为例,经常会考察内容包括:

1)setState 的内部实现?

2)什么是虚拟 DOM,引入虚拟 DOM 的目的,虚拟 DOM 一定能解决性能问题么?

3)React Hooks 有哪些了解?

4)react redux 的底层原理?如何完成异步请求?介绍自己常用哪些 redux 中间件?以组合函数的方式手写代码实现中间件的级联功能?

5)react 的 diff 算法了解么?

6)react 的 fiber 算法了解么?

7)react pureComponent 和 Component 有何区别?

8)react 的生命周期,新版和旧版都需要了解

9)react 的单向数据流如何理解?

10)如何设计组件?

11)react memo?

12)react 无尽列表是如何实现的?

  1. 性能优化

1)浏览器的渲染原理是一定会被问到的?

2)浏览器输入一个 url 之后的过程,以及过程中应用了哪些缓存,如何优化?

3)script 标签和 link 标签的先后顺序对页面加载的影响?

4)async 和 defer 的区别?

5)react native(因为我的简历中有写到使用过 RN)有哪些坑?

  1. 计算机网络

1)解释 TCP/IP 的三次握手和四次挥手?

2)解释跨域问题以及前端常用的解决方案?

3)CORS 的细节,哪些是简单请求?哪些是非简单请求?

4)解释 HTTPS? 解释 HTTP/2?

5)HTTP 报文的格式?

  1. 算法

1)手写冒泡排序?

2)给定两组数,分别以链表方式存储,求和?注意进位

3)数组去重?

4)微信红包是如何实现的?

5)给定一组数,求和函数是带延时的网络请求,如何在最快的时间内计算出这组数据的和?

  1. 前端工程化

1)webpack 如何拆分大文件?

2)webpack 打包的过程?

3)webpack 的基本配置?

  1. 项目经验

这部分大概很多同学都很关心,到底应该怎么写自己的项目经验。出场率最高的问题也是介绍一下你做得最出色的项目?

首先最重要的是,实事求是。

这方面我认为主要考察候选人在工作中所承担的角色,以及平时工作中是否注意积累和总结,其实大多数人平时是不善于总结的,我自己也是,所以平时注意写“详历”是对自己很有帮助的。

关于祥历如何写,极客时间《面试现场》专栏中有提到,我觉得非常好,分享给大家

详历的结构如下:

开头,“有段经历,正好遇到了这个问题……”。(讲清问题背景)

发展,“一般的做法是做不到的,因为……”。(讲问题的复杂性和挑战)

高潮,“我一开始用到……后来……”。(讲解决方案的形成过程)

结局,“成果是……”。(讲结果、影响、意义)

所谓“详历”,是相对于“简历”更详细的工作经历和能力的总结,用故事的方式,记录工作的成果、职位、经验和能力发展,相当于你的工作档案,用于回顾个人工作经历,撰写简历,也是回答面试问题的经历素材库。这些素材体现你的个人经验、技能、潜力、动机。详历是你个人工作经历的故事汇编,是你能力的索引,是给你自己参考用的,随着经历的增加而越来越充实;而简历是给面试官看的,最好因职位而异。

详历主要有三个作用:有助于职业规划,可视化技能体系、经验分布和成长路径。是定制简历的母版。提供面试素材。当被问到“这个项目最大的提高是什么”,或者“你失败的一次沟通是怎样的”,你可以从准备好的详历中,快速选取恰当的故事,讲给面试官。

【第三部分 面试流程,以及美团、阿里面试有什么不同的体会】


(待大亮补充,比如:)

可能很多同学都想知道大厂的面试流程,这里我也简要分享一下:

总的来说大厂对于候选人的基础知识要求还是非常严格的,当然也更看重候选人的潜力和心智,因为在大厂看来知识是死的,只要时间足够,通常都可以掌握,但是潜力和心智状态,却和每个人的成长轨迹和阅历有关。

一面面试官通常是你未来的同事。面试主要考察候选人的基础知识,我遇到的面试官都非常nice,会寒暄几句,帮助你脱离紧张的情绪,然后进入正式面试环节。我记得看过一个TED的演讲,内容是关于紧张,里面讲就算你真的紧张的不行,也不必担心,因为人总是比较在意自己的,所以就算你觉得自己非常紧张了,在面试官眼中你表现得也没有你想象的那么紧张。

二面面试官通常是你未来的直级leader。这里阿里和美团不一样的点在于,当时阿里主要考察了我对于过往项目的掌握程度,以及我在项目中的角色,然后和我聊了很多个人成长方面的心得和看法;美团则侧重考察了我一面面试官没有问到的基础知识点,这里其实每个公司可能都不太一样。

三面面试官通常是你整个部门的leader,主要从职业发展和候选人背景方面进行考察,过程中也会穿插着考些算法题,不过都不难,主要考察候选率的编程能力的。美团到这里就结束了,之后就是HR和你聊聊薪水,个人背景,跳槽原因等等。

阿里比较特殊,会多一轮交叉面试,四面是HRG和集团技术大佬混合面试,我个人觉得主要考察候选人的沟通、应变及潜力等等,没太问技术相关的问题,可能我比较幸运吧

想说的是如果想求职阿里,就要做好打持久战的准备,阿里的面试周期比较长,1-2个月也是很正常的,所以要做好心理准备,如果面试完没有收到阿里的邮件,应该就通过面试了,没有消息就是最好的消息。美团就很快,当然也看部门是否急需招人,我面试的部门当天就走完了全部流程。

【第四部分 其他 Tips】


下面这些 Tips,都是我平常自己准备面试会遵循的,希望也可以帮助到你。

  1. 简历编写,如何过初步筛选

网上优化简历的方法论很多,我就不多展开了,我列举一下我的简历框架,希望能给你一些启发

1)尽量一页纸展示自己的内容。

2)总体分为7个模块:个人信息、教育及工作背景、技能清单、项目经验、开源项目、个人博客、自我评价,其中开源项目和个人博客部分可有可无,如果有,自然是加分项。

3)技能清单里面,写清楚自己熟悉的语言、框架,甚至能证明你有某方面能力的证书。这里需要注意的是,千万别写“精通”,除非你这门语言或者框架的缔造者,一般来说精通一门语言或者框架确实很难。

4)项目部分,我的书写方式是 工作+结果。挑选项目中我参与的比较重要的部分,然后描述清楚工作内容和我的产出结果,尽量数字化自己的成果,比如项目时间、代码量、提高百分比等。再者,项目部分一定要真实,你需要对你写的内容了如指掌并且负责,否则面试官可能会认为你人品有问题。

5)自我评价部分,通常来说,适当包装自己的优点即可。如果某个企业你十分心仪,也可以参考对方的企业文化,重点匹配自己的内容即可。另外,你写的优点最好能用1-2个例子来佐证,比如我写了自己自驱力强,阿里面试官问到我的时候,我就介绍了自己主动学习,参与前端训练营的培训、买了很多专栏并学习、关注了很多技术博客,并写文章总结等等。

  1. 怎么谈薪资

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

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

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

img

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

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

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

完整版面试题资料免费分享,只需你点赞支持,动动手指点击此处就可免费领取了

前端实习面试的套路


回顾项目

往往在面试时,面试官根据你简历中的项目由点及面地展开问答,所以请对你做过的最好的项目进行回顾和反思。回顾你做过的工作和项目中最复杂的部分,反思你是如何完成这个最复杂的部分的。

面试官会重点问你最复杂的部分的实现方法和如何优化。重点要思考如何优化,即使你项目中没有对那部分进行优化,你也应该预先思考有什么优化的方案。如果这部分答好了,会给面试官留下很不错的印象。

重点在于基础知识

这里指的基础知识包括:前端基础知识和学科基础知识。

前端基础知识:html/css/js 的核心知识,其中 js 的核心知识尤为重要。比如执行上下文、变量对象/活动对象(VO/AO)、作用域链、this 指向、原型链等。

学科基础知识:数据结构、计算机网络、算法等知识。你可能会想前端不需要算法,那你可能就错了,在大公司面试,面试官同样会看重学生这些学科基础知识。
你可能发现了我没有提到React/Vue这些框架的知识,这里得说一说,大公司不会过度的关注这方面框架的知识,他们往往更加考察学生的基础。
这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果你没有使用过框架,那也不需要太担心,把重点放在基础知识和学科基础知识之上,有其余精力的话可以去看看主流框架的核心思想。

础知识:html/css/js 的核心知识,其中 js 的核心知识尤为重要。比如执行上下文、变量对象/活动对象(VO/AO)、作用域链、this 指向、原型链等。

学科基础知识:数据结构、计算机网络、算法等知识。你可能会想前端不需要算法,那你可能就错了,在大公司面试,面试官同样会看重学生这些学科基础知识。
你可能发现了我没有提到React/Vue这些框架的知识,这里得说一说,大公司不会过度的关注这方面框架的知识,他们往往更加考察学生的基础。
这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果你没有使用过框架,那也不需要太担心,把重点放在基础知识和学科基础知识之上,有其余精力的话可以去看看主流框架的核心思想。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值