引言
什么,你说你简历都不知道怎么写,看面试题有什么用?
戳下面这个链接看看吧, github.com/jeoy/its-me
我就是拿着这个简历去面试的
对于项目的内容,欢迎star, 欢迎issue,欢迎PR
美团
一面
- app相关:灰度发布,如何保证稳定性
- 盒模型
- 手写css布局问题
- spa应用设计问题
- 路由相关
- vue数据绑定原理
- 多路复用
- ipv6
二面
聊项目内容,讲内存泄漏,词法作用域和什么时候闭包会引起泄漏(GC机制相关)
讲了最近自己在做的一点开源, 然后我(机智)的聊到了我发现的一个坑,并且发了stackoverflow, 贴了jsfiddle, 让面试官打开看...
issue地址 面试官看完表示很有趣,他也不知道。
三面
聊项目内容:
- 讲react-native中嵌入webview可能存在的性能问题,通信方式。
- 多项目管理存在的问题,后端接口不分web和mobile的话, 前端web和mobile出现了model不一致,后端如何做接口兼容。
用过redis吗, 简单写一个LRU
字节跳动
上来先是纸上写题目
- 实现一个高度为50%的垂直居中样式。
- arguments是不是数组,怎么转数组
- 隐式转换写输出题
- 经典的那个asyn await和promise输出题,要详细解释过程。
- 写截流函数,问如果 thFn = throttle(obj.fn), thFn()这种调用方式如何保证this.
- 实现一个带继承方案的bind,就是bind输入一个构造函数A,生成一个新的构造函数B,B new出来的对象需要继承A的属性和方法
- 实现k数之和,找出一个解就行,并说出时间空间复杂度
问答
- cookie作用是?cookie是如何形成的,使用cookie注意什么问题
- 有哪些http缓存策略,为什么要用这么多方式和字段控制
- 进程和线程,多进程如何通信 (node相关,pipe管道,共享内存等)
后续转到了数据部门
数据部门
一面
-
一个构造函数和原型链输出题,类似于有
new A().fn(); new A().fn()
这种的, -
一个渲染线程和js主线程执行顺序问题,改变背景色然后while循环再改变背景色,看到效果是怎么样的。
-
for循环输出setTimeout,promise啥的混到一起的输出顺序问题,然后问了任务队列和事件循环问题,问了有哪些微任务,包括node的,setImmediate是不是微任务
-
截流防抖,应用场景
-
如何排查内存泄漏问题,闭包概念,原型,原型链概念, 一个作用域对象里有哪些东西
-
new 一个对象执行了什么操作
-
es6的新特性用了哪些
-
然后问了js原型模式和c的class区别,问了静态对象和方法如何实现
-
GC机制
二面
- 讲对promise的理解,promise.all功能,存在问题,如何封装改进
- promise.race功能,应用场景
- 实现一个promise截流器,每次只并行发送n个请求。
- 解释BFC以及作用
- http状态码,问了很多(307, 504这种),然后问了http缓存。
- echarts 实现原理,底层canvas api
- canvas如何画曲线,(需要绑定哪些事件),用户光标移动太快怎么办, 只捕捉了间歇的点,如何画平滑的曲线
- 如何判断一个点是否在曲线上(图形里)
三面
- 聊了一些非技术的
- 如何判断一张画布上有多少个图形(三角形,多边形,圆)这种,并求出他们的面积
- echarts的渲染流程
项目相关
- 讲解了一下图表颜色字段不同聚合方式的配置实现
- 多端实现提取了哪些公共组件进行复用,哪些部分不太好做
- 单元测试怎么做,css测试怎么做,ui自动化测试
Tencent
一面
上来先是纸上写题目
- 原型链调用输出问题,类似于有
new A().fn(); new new A().fn()
这种的, - parseInt那个
问答
- token有什么好处(相比cookie和CSRF攻击)
- 解释web和node的事件循环
- 解释webpack热更新原理
二轮技术总监
- 聊项目经理,聊业务前景
- 写算法题
I__am___jon___snow
这种字符串反转,单词不反转- 判断一个二叉树是不是查找树,写完用case过一遍。
三轮是PM
交叉面,没有聊技术
GM面
是一个单独大办公室的大佬,随便聊,没技术
阿里
这个太早了,写的时候很多问题记不清了。
一面
问答
- promise,async await的区别
- 事件循环,任务队列
- 继承的实现,如何实现类的方法。
- 纸上写题,一个dfs二叉树的题
- 写题,判断两个矩形区域的相交区域(excel那种形式,给[A1, D4] , [B2, D6]这种)
二面
- 聊了项目
- 聊了正在做的开源,问了一下技术实现
- 纸上写题,比较两个对象是不是相等,(所有的key value都一样)
三面
没有聊技术,说了hrbp很麻烦