面试周期:从投递简历到收到offer大概经历了一个月左右,所以最好还是不要裸辞,不然心态会裂开。
笔试题:(二面、三面后的笔试)
-
1、手写bind
-
2、手写简版promise,基础架子,不用写all、race等api
-
3、爬楼梯,尾递归优化(算法)
-
4、猴子吃香蕉(算法)
-
5、回文字符串个数(算法)
一面
一面是电话面试,面试问题(可能记不全了),大致以下部分
-
(1):各种原生方法的使用,基本类型和引用类型,es6中的set(集合)和map(字典)的使用和对应的数据结构。
-
(2):sort的实现,内部用的插入排序和快速排序(根据排序的量级用不同的方法)
-
(3):bfc布局规则
-
(4)项目怎么做的移动端适配?flexible原理(1px问题,通过viewport)
2、说一下原型链,原型链实现继承。3、http和tcp协议?4、缓存相关(对比缓存?强缓存?对应请求头)cookie有哪些属性?5、简单请求?跨域?6、vue中nextTick的实现,结合浏览器事件循环机制说一下?7、说说commonjs和esmodule?6、最近在看什么新东西吗?vue3 beta(其实看得很少,二面问了,自己给自己挖了个坑)
二面
二面是视频面试(面了两个多小时,中途换了个面试官)
1、
-
项目中遇到过哪些难点?怎么解决的?
-
做过哪些优化?优化有量化吗?
-
用过哪些loader?plugin?
-
你写的这个插件实现了什么?怎么实现的?
-
sourcemap原理知道吗?
2、
-
http和tcp、https、http2(队头阻塞?解决了哪些问题?哪有哪些问题未解决?tcp和udp?)。
-
摘要算法和对称加密、非对称加密大概说一下?
-
摘要和加密的区别?知道哪些加密算法?
-
websocket的使用场景(socket.io降级)?
-
前端安全防范措施?
-
xss攻击和csrf攻击?
4、
-
怎么看待virtual dom?
-
ast语法树了解吗?
-
vue-loader做了哪些事情?
-
vue diff?
-
vue computed和watch区别?
-
computed怎么实现的缓存(dirty)?
-
vue3双向数据绑定实现?
-
createRender?
-
和vue2有哪些不同,提到了函数式编程,说下对函数式编程对的理解?
-
对MVC (react) MVVM(vue)的了解
-
node相关问题,node的事件循环机制?
-
stream两种模式的区别?
-
看过koa源码都会觉得和express有很大不同,说一下?
-
你写过小程序,说下和写vue有什么区别?
-
时针和分针的夹角?
-
为什么要离职?怎么学习的?有什么问题吗?
三面
三面视频面试,
-
1、项目相关问题?
-
2、和很多二面的问题类似
-
3、为甚么要有同源策略?dns劫持?
-
4、团队协作,以前的开发流程?
-
5、职业规划?
-
6、有什么问题吗?
原文:juejin.im/post/6844904178100207623