大厂技术 高级前端 Node进阶
点击上方 程序员成长指北,关注公众号
回复1,加入高级Node交流群
作者:刮涂层_赢大奖
原文地址:https://juejin.cn/post/7036581158670303240 (感谢小伙伴投稿,也欢迎去原文点赞)
高德 滴滴 美团 网易 快手 腾讯 金山 360 百度 知乎 微软等大厂面试经验
一年半以前,写了个万字前端面经,最终去了字节混饭吃,因为一些业务调整的原因,我又跑路了,没写一面二面都是一轮挂的或者后面我不想面了的,附带部门的是挂了或者我拒了之后又面了另外的部门,按照一面开始时间先后排序,还有很多优秀的公司我面了但是忘记录音,比如 momenta、完美世界、掌阅等等。现已完成更新,全文共计一万三千字,
每家的自我介绍和离职原因部分我就省略了~
写在前面
本次面试持续了整整四周,密度非常大,平均每天四家,身心俱疲,如果不是时间紧迫建议不要把面试安排得这么密集
八股文虽然很多没什么用,但是该背还得背
算法和数据结构不是短时间就能练成的,不过好在前端不会有太难的算法题,都是基本的动态规划,回溯,数组遍历,链表,二叉树的问题,如果自己算法实在不太行,找工作提前一两个月把力扣上比较经典的题刷一刷,遇到题最起码不至于没思路,各种排序的原理还是要看看的,很容易被问到,而且一旦答不上来很减分
不管你写 Vue 的还是 React 的(如果你写 ng 当我没说),很容易被问到两者区别,建议从多个角度去聊,比如框架特性、生态、开发体验、社区评价、性能、源码等多个角度聊
有亮点的项目最好多准备几个,最好是不同类型的,比如业务的、偏中后端的、组件库的、工程化的和新兴技术的,根据自己擅长的内容最起码准备两三个,有的面试官就是想看你都做过哪些有难度的事情,一招鲜这时候就不好用了
对不同的角色的面试官问的问题,要在不同的角度回答,比如同样问你有没有处理过兼容性问题,对前面的面试官,就可以回答遇到过的不兼容的场景和解决细节,遇到后面 leader 的面试就可以更多地从如何高效验证排查兼容性问题这个角度回答,注意场景
最后一般面试官都会给提问题的时间,我个人一般是问业务内容、技术栈、团队规模或者未来业务和技术上发展方向,到后面的面试官我会问一下这位面试官在这个团队中的角色,根据他的角色结合他对上面几个问题的表述可以初步判断出这个团队是边缘的,还是核心的,还是单纯是个画大饼的
整体面下来,面试体验最好的是微软,谦卑,有礼貌,感觉微软面试官是有一整套面试话术的,比如
“接下来我会问你一些业务相关问题,请在不违反当前公司原则的情况下回答,如果我的问题你不方便回答可以直接告诉我”
“接下来这个题你可以用你任何熟悉的编译器进行作答”
“我接下来描述的问题如果你有任何不清楚的都可以随时打断我”
我答的题,还有我描述的项目,面试官一般都会先给予肯定答复,如果有问题再做进一步的提问
中途有一轮,面试官的问题我理解错了,实现了另一个东西,面试官第一反应是自己没有表述清楚,而且说我理解的这个方向的代码实现得很好
后面英文面试时,我英语很差,面试官说了一大段英语我基本没听明白,面试官问我是不是自己说太快了
Taptap
一面
换肤都做过什么处理,有没有处理过可能改变尺寸的换肤
i18n 在团队内部都做了哪些实践
webpack 迁移 vite 遇到了哪些问题
CI/CD 做了哪些实践
鉴权有了解么,jwt 如何实现踢人,session 和 jwt 鉴权的区别
TCP 三次握手 http1.0,1.1,2 都有哪些区别
https,为什么 https 可以防中间人攻击
冒泡排序
二面
给你一个已经升序排列的数组,给一个数字,找一下这个数字在这个数组里出现了几次
洗牌算法,如何验证这个洗牌算法可以把牌洗得足够乱
node stream 去取一个超大数据量的日志,由于内存限制每次只能取一部分,现在希望在全部日志中随机取一万条,如何做
介绍一下项目 有哪些是由你主导提出的方案做的事情
京东
一面
介绍一下 promise,它为啥叫 promise
esmodule 介绍一下,它和 commonjs 的区别,主要的优势是什么
介绍一下 vite 的原理,它会去编译你的代码吗,vite 引用 commonjs 的包的时候怎么处理
如何转成 esm vue3 的组合式 API 有了解吗,它有哪些优势
介绍 https cors 介绍一下
微前端有了解吗
为什么你们移动端 h5 用 vue,pc 管理端用 react?
git 对象上的操作有了解过吗?git reset、rebase 这些操作用过吗 ?
看你之前跳的都比较频繁,每段都没超过两年,京东有个二五原则,这个问题你怎么看
二面
你们小程序是用的 taro,对 taro 原理有了解吗
你们 cms 系统的架构是怎样的
你有了解过 webpack 现在也支持 esm 了吗?
你们的组件库是全公司公用的还是团队内自己的,是从 0 开发还是参考其他开源组件库在别人的基础上搞的?
有用 vue3 吗,为什么团队没有上 vue3?
你们 react 用的是什么语法?fiber 原理有了解吗?
你们当前团队有多少人,未来想做哪方面?
度小满
怎么理解 vue 单向数据流的
Vue 组件之间的通信方式都有哪些,用过 eventbus 么,eventbus 的思想是什么
写个自定义 v-modal
和listener 有了解吗
Vue 生命周期有哪些,都是做什么的,updated 什么情况下会触发,beforeCreate 的时候能拿到 Vue 实例么,组件销毁的时候调用的是哪个 API
什么情况下会触发组件销毁,销毁的时候会卸载自定义事件和原生事件么
自定义指令写过么,自定义指令都有哪些钩子
传统前端开发和框架开发的区别是什么
Vue2 的数据响应式有两个缺陷,你知道是哪两个缺陷么,为什么会有这样的缺陷,如何解决
Vue 如何实现的数组的监听,为什么 Vue 没有对数组下标修改做劫持
Symbol 有了解吗,迭代器有了解吗,哪些是可迭代的
用 Set 获取两个数组的交集,如何做
实现 Promise.all
animation 和 transition 有什么区别
写个动画,一个盒子,开始时缩放是 0,50%时是 1,100%时是 0,开始结束都是慢速,持续 2 秒,延迟 2 秒,结束后固定在结束的效果
这是我面的比较离谱的一个,问各种 API,没什么实际营养,说实话挺无聊的,面试体验也一般
BOSS 直聘
聊一下最复杂的项目
在无障碍的项目中做过哪些
做黑夜模式有没有考虑过用户设置了定时切换手机黑夜模式的情况
你们开发的 h5 项目依赖的安卓和苹果的 webview 的内核分别都是什么
Lottie 动画上做过哪些优化,有考虑在低端机上用 CSS 动画做么
如果让你做一个动画,一个地球本身在自转,外面有个飞机围着它转,飞机的螺旋桨自己也在转,有哪些需要考虑的点
CI/CD 上做过哪些
webpack 迁移 Vite 遇到过哪些问题,之前 webpack 慢是为什么,有过优化么
业务内的公共工具提炼了哪些
自己做着玩的这些项目介绍一下,主要都是做什么的
这次找工作主要看重什么
奇虎 360(安全卫士)
写 Vue 多还是 React 多?
职业规划
CSS 实现一个扇形
问输出,以及原因(具体代码我没记,但是这个考点,以下题也都是)
var a = { name: "Sam" };
var b = { name: "Tom" };
var o = {};
o[a] = 1;
o[b] = 2;
console.log(o[a]);
问输出
async function async1() {
console.log("async1 start");
await async2();
console.log("async1 end");
}
async function async2() {
console.log("async2");
}
console.log("script start");
setTimeout(() => {
console.log("setTimeout");
}, 0);
async1();
new Promise((resolve) => {
console.log("promise1");
resolve();
}).then(() => {
console.log("promise2");
});
console.log("script end");
问输出
const promise1 = Promise.resolve("First");
const promise2 = Promise.resolve("Second");
const promise3 = Promise.reject("Third");
const promise4 = Promise.resolve("Fourth");
const runPromises = async () => {
const res1 = await Promise.all([promise1, promise2]);
const res2 = await Promise.all([promise3, promise4]);
return [res1, res2];
};
runPromises()
.then((res) => console.log(res))
.catch((err) => console.log(err));
Vue 的 nextTick 是做什么的?8.React 的合成事件和原生事件了解吗?
webpack 和 vite 的区别是什么,切 Vite 的动力是什么
之前的开发模式是怎样的,是一个人负责一个模块还是按照需求排期分配
微前端有了解么
HR 约我现场二面,我说我去不了北京,HR 说帮我协调一下远程面试,之后就再也没联系我
陌陌
之前做过哪些工具
移动端兼容性问题遇到过哪些
如何限制 Promise 请求并发数
实现这个 pipe
const fn = pipe(addOne, addTwo, addThree, addFour); // 传入pipe的四个函数都是已实现的
fn(1); // 1 + 1 + 2 + 3 + 4 = 11,输出11
了解过 Vue3 么,为什么还没有上 Vue3,了解 Proxy 么,它和 defineProperty 的区别是什么,性能上有什么区别么
Vue 如果想做模板的复用,应该怎么做
有做过骨架屏么,是怎么做的
有做过懒加载么
有过 React Native 的经历吗
MySQL 优化有了解过么
高德
一面
如果实现一个三栏布局,需要三栏占同样的宽度,放多个元素时会自动换行,有哪些做法
移动端适配是用 rem 还是 vw?分别的原理是什么?你们用什么方案?
ES6 语法用过哪些,都有哪些常用的特性