tip: 一二三面连着面的,中间有10分钟休息时间,面试官都很和善的,不会给太大的压力,不过字节的每一个问题都会问的很深,很深。。。感觉到了跟大佬的差距O(∩_∩)O😄
一面 (视频面 1小时35分钟) 20年3月1日
自我介绍
-
vue和react有什么区别,更喜欢用哪个,为什么
-
react hook熟悉吗,解决了什么问题,用react hook写一个用户鉴权的组件,所有其他组件都要经过它验证(auth是一个promise)
-
为什么请求放在useEffect里,放在外面和放里面有什么区别?在useEffect里想使用async/await怎么用
-
谈了谈useLayoutEffect和useEffect具体执行时机
-
算法,一个树结构,有id和一个子节点数组,要求在所有子节点上增加一个属性为父节点的parentId
-
async/await和promise性能差异, 我提到了堆栈追踪,在本人发表的其他文章里有写到
-
react写一个时间选择组件,先设计要传什么样的props接口,说明原因,外部组件如何使用(其实就是考封装组件库), 如果是手机端的,无线滚动的效果具体如何实现
-
CommonJS和ES6模块化有什么区别,设计一个方法,让CommonJS导出的模块也能改变其内部变量
-
webpack treeShaking原理,是靠什么才能实现(ES6模块的静态导出)
-
webpack的构建原理,loader和plugin的区别
-
讲一下js的隐式转换
-
JSONP和ajax有什么区别,手写一个JSONP(promise版的),window上挂在的函数如何避免重名
-
算法,实现一个螺旋矩阵
其他的零零散散的想不起来了
二面 (视频面 1小时) 20年3月1日
-
网络安全,XSS、CSRF、SSRF的原理,黑客是如何利用这些漏洞的
-
XSS如何防御,交给前端做还是交给后端做,如何做
-
CSRF如何防御,同源策略解决了什么问题
-
前端性能优化是怎么做的,各方面考虑(我谈了从网络层面的,浏览器渲染层面的还有css、js执行,框架层面的,越详细越好)
-
http缓存和CDN原理讲一下
-
老生常谈的问题,用户输入url到页面展示经历了哪些步骤(越详细越好,这个问题能讲很久)
-
http和https的区别,https有什么好处,https握手过程,https是如何做到“安全”的
-
http2了解过吗,http2和http1的区别和好处,http2的头部压缩的原理
-
鼠标滚动的时候,会触发很多次事件,如何解决的? (我说的防抖和节流) 具体用的防抖还是节流,我答节流
-
能实现一个节流函数吗? (很快写完了 定时器版) 面试官改进一下要求滚动第一次就触发,于是改成时间戳版。 再改进一下,最后一次的延迟也要触发,于是改成了时间戳+定时器版,完美解决
-
一个场景,鼠标移动到超链接上,有气泡弹出,内容为去后端请求的接口内容(页面有很多个超链接,内容都不一样)
-
AJAX的原理,如何实现(手写), http状态码都有哪些,代表什么意思
其他的零零散散也想不起来了
三面 (视频面 30分钟) 20年3月1日
二面结束后三面面试官在开会,hr中途进来告诉我前两面都已经通过了(窃喜),等了50分钟,三面面试官来了(估计是很忙的事情,还能来面我真的很感谢)
-
谈谈你对前端的理解
-
平时是如何学习的
-
在京东实习期间,遇到的最难的问题是什么?参加实习和没有参加实习给你最大的感触是什么?
-
说一个近期遇到的难题,并分析具体解题思路,给你带来的思考与收获,从代码、原理来解释
-
能接受的工作时间
三面没有考算法或者手写代码,主要就是谈解决问题的思路与个人规划(感觉有点像hr面了,但是不一样的是,讲思路要涉及源码的一些知识)
三面结束后面试官告诉我等hr联系(内心超级兴奋,感觉稳了一大截)
hr面 20年3月5日
hr面就是谈一些学习方法,之前的实习情况等等,大多都是非技术性的
三面结束以后等hr联系,等了很多天都没有等到,3月4日的时候已经心灰意冷,开始准备其他公司的校招了,没想到第二天hr联系我了,超兴奋
hr小姐姐告知我具体结果会在接下来几天出来,等待ing
个人感觉字节跳动的每个问题的深度要比本人面试的其他几家公司要深,每个问题都会延伸很多,偶尔会出现被问的哑口无言的情况,尴尬😅