前端面试葵花宝典
今天参加了一个分享大会,是关于前端面试的,虽然自己目前并无跳槽面试需求,但是觉得了解一下行业标准对自己现在查缺补漏更好一些。大会是线上的从早晨9点就开始了,一直到晚上七点多才结束,其实里面有10个分享嘉宾,不过我开头和中间有事都没有听见,听到的4~5个分享讲师分享的内容真的是干货满满,有点相见恨晚的感觉,于是会后我就想整理一下,让更多人也能有机会更早知道这些面试规则和技巧,早知道早去练习这些能力。对于准备跳槽的小伙伴会更有帮助。
关于这个结果,不管你写对了写错了,都可能会问到你如下知识点:注:前面有整理过文章欢迎找答案:头条面试题你接住了吗 — 回调地狱引出的深度考察
- 宏任务、微任务先后执?顺序,Promise 以及 async 中哪些部分是同步,哪些部分是异步/li>
- 还有哪些时序相关的函数
- setInterval
- 浏览器端:requestAnimationFrame、requestIdleCallback;
- Node 端:setImmediate、nextTick;
- 分别有什么区别何实现 Polyfifill/li>
- 如何实现 Promise;async 函数编译 ES5 代码时会变成什么ue 的 nextTick 如何实现的/li>
- Node 的事件循环流程否了解过 queueMicrotask 函数
题??:描述?下 HTTP 缓存策略?络)
- 强缓存、协商缓存;HTTP 常?的头部、状态码,基本的流程
- HTTP、HTTPS、HTTP2 的区别;?络模型,TCP 三次握?,四次挥?
- ?对称加密,证书,Hash,常?的加密算法,HTTPS 握?过程;多路复?
- DNS、CDN、WebSocket;?络安全,中间?攻击、CSRF、XSS、SQL 注?,同形异义字;URL 编码
题?三:请谈?下你对 React 的认识框架)
- ?命周期,新旧?命周期的区别状态组件、PureComponent、?阶组件(HOC)
- Hooks,Provider/Context,Ref,Portal,错误处理 Redux,中间件;
- JSX 原理染?段:mixin,HOC、Render Prop;虚拟 DOM 的原理;setState 同步异步,浅?较(shallowEqual)
- 合成事件,Fiber、FiberNode、workInProgress;SSR、React Native;性能优化:耗时、帧率、CPU、内存泄漏、回流重绘
如何面试/h3>
接到?试通知怎么办/strong>
-
可以礼貌的拒绝现场的电话?试
-
协商沟通?试时间、?试?式(电话、视频、现场)
如何做?我介绍/strong>
-
基本情况
-
与岗位的匹配度或优势
-
简历上容易忽略的细节
-
简历上没显示出来的点
如何?对??不擅?的领域、知识点/strong>
-
没了解过,坦诚表达??没了解过
-
了解过,但不熟;先说明??不熟悉,再说明??对其?些猜测或想法。
如何?对算法题/strong>
-
从易到难
-
写伪代码
?试进?尾声,?试官问“你有什么要问我的吗,该说什么/strong>
-
不要问?试结果
-
可以要求加问?些你擅?的问题
-
了解?些团队的业务和技术栈
二、如何通过一道编程题考察候选人的水平 宗羽-盒马
大部分人面试时候都不喜欢面试时候coding,原因可能有很多:紧张、记不住API、业务中代码大部分不会的 上一查啥都有粘过来改改,自己写不太会…等,不过站在面试官的角度去看看面试官如何看待面试coding这件事吧
对面试官有哪些挑战呢/h3>
- 面试官和候选人的知识结构有差异,错过优秀的人
- 遇到「面霸」,但实际能力一般,招到不合适的人
- 在短短半个小时到一个小时内要判断一个人,其实很难
所以面试官觉得:笔试还是相对靠谱的方法(Talk is cheap,show me the code)
笔试中常见的问题
- 考通用算法,Google 能直接搜到
- 题目设计有问题,要么满分,要么零分
- 和实际工作内容脱节
面试官认为好的笔试题
- 上手门槛低,多多少少都能写一点,不至于开天窗
- 考点多,可以基本摸清候选人的代码综合素养
- 发挥空间大,同样的结果,不同的实现方式?以看出候选人的技术深度
面试者常见的问题
- 没有判断入参个数
- 仍然用了本地加法
- 还能优化吗/li>
另外一种更开放式的笔试形式
- 给一道题目,让候选人建一个 Github 仓库来完成
- 题目有一定难度,但是?以 Google,也?以用三方模块,和我们平时做项目差不多
- 通常面向级别较高的候选人
这种方式主要是考察面试者的编程习惯和编程能力,如代码风格、态度是否端正、细节处理的怎么样、有没有做优化、工程化素养有没有、有没有测试用例等等去考察面试者的各种能力
笔试demo1:10GB 的文件无法一次性放进内存里处理,内存只有 4GB
解题思路
- 既然没办法一次性在内存中排序,那我们能否将10GB 的文件拆分成若干个小文件
- 小文件先分别排序,然后再合并成一个大的文件
如何用代码实现呢/strong>
-
这里需要用到一种数据结构:堆
-
堆:就是用数组实现的一个二叉树
-
堆分为:最大堆和最小堆,下面是一个最小堆(父节点小于它的子节点)
-
堆有一些特性
-
对于一个父节点来说
- 左节点位置: 父节点位置 * 2 + 1
- 右节点位置:父节点位置 * 2 + 2
-
很容易查找最大值 / 最小值
-
完整的参考实现
https://github.com/gxcsoccer/external-sorting
其他考量的点
- 工程化素养
- 是否有单元测试
- 覆盖率是否达标
- 是否有 benchmark
- 依赖的模块版本如何设置
- 如何配置 CICD
- 文档、注释
- Git Commit 规范
三、如何增加大厂面试的成功率 大史不说话-字节
大史不说话的分享是以自身经历来说面试,真实好用拿得走,如下是他的自身经历:
有坑!不难,我看出来了。
解法?:
解法三:
解法 – 校验:
解法 – 304:
背景:
解决:
-
部署:?痛接?
-
代码死循环断!
-
Alimonitor-错误采集指令
-
暴露配置
- worker进程数
- 内存?位(max_old_space_size)
- 模块缓存策略
-
SSR失败,浏览器端继续渲染
-
面试准备
了解岗位、考察维度、准备简历、准备?试问题、总结复盘校招和 招差异
- 准备简历
- 职位信息
- 考察维度
- 准备?试
- 考察维度
- 总结复盘
职位解析
-
团队协作
- 在这?, 你将有机会与设计师和产品?起,完成产品Web功能的设计与实现;
-
技术能?
- 有机会做全栈式开发;
- 有机会做移动端开发;
- 有机会做性能、架构等??的改进与优化;
-
技术热情
- 有机会??亲?打造?个产品的从设计到发布; 你还将加?到我们业内最前沿Web技术的研究与开发中。
-
基础扎实,涉猎?泛
- 我们希望你,熟练使?各种Web前端技术,包括HTML(5)/CSS(3)/Javascript等,并有相关的项?开发经验或成果;
-
理论+实践
- 我们希望你,熟悉前端?程化,?过git,gulp或webpack等?具,最好有??的github仓库;
- 我们希望你,深刻理解Web标准,对可?性、可访问性等相关知识有实际的了解;
-
服务端开发经验
- 我们希望你,有基于Ajax应?的开发经验,有NodeJS/Java开发经验,或者有移动端开发经验;
-
计算机基础
- 我们希望你,对算法、数据结构、建模有?定了解;
-
?凡?平常? 做?凡事
- 同时,我们还希望你: 学习能?强,对新事物保有好奇?,并能快速适应新环境
-
?起拼?起赢
- 良好的沟通能?和团队协同能?;能与他?合作,共同完成?标
-
梦想永在,?证预?
- 对所在领域有热情,相信?法总?困难多,善于独?思考并反思总结
准备简历
-
信息简洁且完整
- 教育背景、专业技能、实习经历、项?经验
- 荣誉成果、使?短句、简洁排版
-
内容真实且客观
- 数据或实例、真实不造假、不过度包装
-
突出亮点
- 关键词抽象
简历案例
考察维度
-
基础
- 计算机相关专业,学业课程优秀
- 数据结构、算法等基础扎实
- 前端基础、编码能?
-
加分项:
- 后端开发经验、算法
- A+参考项:
- 前端标准或主流框架深?理解并参与贡献
- 国际Top院校和实验室相关领域
- 国际?赛奖项
-
成果
- 专注前端领域,具有前端项?经验
- 深?了解技术在实际场景中的运?
- 钻研能?,运?技术解决实际问题
-
加分项:
- 重要产品中担当主要??
- ?博、出书或译书经验
- A+参考:
- 在开源 区中有突出影响?的技术项?或有价值的商业项?
- 业界影响?的发明专利
- 顶级期刊会议发表论?演讲或其他有影响?的学术成果
-
热情
- 了解前端相关领域或扩展领域的技术
- 有??学习技术信息获取途径
- 对前端有强烈好奇?,愿意额外投?精?
-
加分项:
- 具体事例?撑对技术上有狂热的追求
- A+参考:
- 对前端领域有充分了解
- 对领域问题有??的?解
- 愿意持续投身其中解决问题
人才观
- **聪明:**IQ、EQ、LQ
- **?实:**?智成熟、能屈能伸
- **乐观:**有理性地充满希望
- **?省:**经得住表扬也经得住批评
?试?法**-STAR**
“可以分享?个你参与过 并认为很成功的项?么
- 你在项?中的??是什么,遇到什么挑战,怎么应对的
- 这个?案的核?思路是什么,这么设计是基于什么考虑
- 最后取得了什么样的结果,为什么你认为它是成功的
- 你作为团队成员所遇到的最困难的事情,是怎么解决这个困难的/li>
?个问题,它不仅仅是?个问题
切忌:?问?答、不问不答
- 准备简历
笔试
一般流程:将2~3道笔试题发给候选人,异步进行,允许查阅资料,约定时间上交
- **代码能力:**思路、规范、性能、封装、拆分
- **算法能力:**数据结构和算法的应用能力
- **态度:**是否认证诚实(代码风格、注释、细节)
- **加分项:**是否有惊喜(TS、测试用例、性能、工程化)
**测试题目1demo:**通过TypeScript + React Hooks 实现一个 useFetchData
**测试题目2demo:**在我们业务中经常会遇到列表或者表格页面,需要支持翻页,加载更多,错误处理,loading的功能,希望能够实现一个Hook来抽象这部分逻辑。
比如接口的返回格式是:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!
-