前端面试题:
在过去的一个月里,自己面试了多家公司的前端岗位,很幸运的是拿到几个不错的 offer,所以想通过这篇文章做个记录与总结,希望给打算求职的你一些参考。
简单介绍
19届,本科,计算机相关专业。毕业后,一直在一家三线厂做前端开发的工作...
其实这次之所以想出来面试,一共有两个原因:其一是,校招结束后就没有面试的经历了,不知道自己目前在招聘市场的水平到底如何;其二是,自己想回南方发展。
所以 2021 农历新春伊始,我就开始复习面试相关的知识,并着手准备相关材料。面试的前期准备大概花了半个月, 2 月 28 号投出了第一封简历....
对下一份工作的核心诉:大平台 + 有技术沉淀 + 「知名」前端团队
所以一共投递了 5 个职位:
- 蚂蚁金服体验技术部
- 腾讯 AlloyTeam
- 百度「爱速搭」团队
- 头条抖音支付
- 滴滴
面试结果:蚂蚁、腾讯、百度、滴滴都通过了面试并拿到 offer ,抖音支付二面挂。
面试经历
百度
一面
- webpack 中 chunkHash 与 contentHash 区别;
- 写过 webpack 的 loader 和 plugin 么;
- webpack 处理 image 是用哪个 loader,限制成 image 大小的是...;
- webpack 将 css 合并成一个;
- webpack 的摇树对 commonjs 和 es6 module 都生效么,原理是;
- 实现一下「模版字符串」功能;
- 实现一下 Promise.all (Promise 不用写);
- 怎么实现响应式布局的;
- css flex 的各个属性值;
- css 动画 animation 各个时间值含义;
- css 如何实现让一个元素旋转并横向移动,如果只用一个 css 属性;
- less 与 sass 区别,技术选型时如何取舍;
- ES6 symbol 如何使用以及使用场景;
- ES6 Proxy 如何使用以及使用场景,说说 Reflect;
- generator 有什么应用场景;
- async await 如何实现的;
- git reset 与 revert 区别,revert 多个 mr 改如何处理;
- git 如何撤回 add 后的内容;
- http2 与 http1.1 区别,了解 http3 么,说说;
- tcp 与 udp 的区别;
- 还问了简历相关的一些问题(例如:性能优化、E2E 测试相关的);
二面
- 介绍一下项目;
- 手写在 给定的 n 个数中随机取出 m 个数,要求等概率;
- 手写一下防抖节流函数;
- 设计实现一个「星级评分」组件;
- 说说 http 缓存;
- call、apply、bind 三者的区别,如何实现 bind;
...其他一些记不住了,这一面很多手写:)
三面
这一面没有问前端基础支持,只是对简历中的一些项目进行了提问,还问了前端的学习经历以及后续的职业规划...
这面通过后就是 HR 了,聊 offer ...
蚂蚁金服
蚂蚁金服的面试流程和其他公司有所不同,它的每一轮面试都是面试官单独加你微信,再和你约面试时间的。
在正式开始一面之前,一面面试官给我发了两道笔试题,让我这规定时间内完成后发给他,题目是:
一面
- 介绍一下你自己,以及项目,简单说一下你做了什么,有什么难点及亮点;
- js 有哪些基本类型,说说 typeof 与 instanceof;
- 说说 new 操作符;
- 什么是 event loop;
- Promise 的用法?了解 allSettled 方法么,怎么实现?
- 说说闭包;
- ES5 实现继承的方法;
- 说说跨域;
- commonJS 与 ES6 模块化区别;
- webpack 了解么?loader、plugin 分别是干嘛的?如何实现一个 loader?
- webpack 如何优化打包速度;
- 说一下 css 盒模型,border-box 和 content-box 区别;
- 说说 BFC;
- 移动端响应式布局怎么实现的;
- 说一说 flex 布局,有了解 Grid 么;
- 有兼容 retina 屏幕的经历吗?如何在移动端实现 1 px 的线;
- 说一下 react 组件的生命周期;
- react 组件如何做性能优化,说说 pureComponent;
- 调用 setState 之后发生了什么;
- 了解 fiber 么?解决了什么问题?具体原理是;
- 有用过 hooks 么?怎么看待 hooks?它的原理是;
- 了解过 react 最新的一些动态么?time slice 、suspense、server component 能说说么;
- 了解最近一些新技术么,webpack5 做了哪些新突破;
- 为什么 vite、snowpack 可以比 webpack 快那么多?具体原理是;
- 什么是 CSRF 攻击,怎么预防;
- 为什么说用 css 实现动画比 js 动画性能好;
- 什么是 合成层;
- http2 与 http1.1 区别;
- 说一说 http 缓存;
- http 状态码;
二面
- 自我介绍,介绍项目,问项目中的一些问题;
- 19 年毕业的,学校的知识没忘吧.. 计算机网络、编程语言、设计模式、数据结构算法、编译原理你对哪个比较熟悉?