首页 > 字节跳动前端实习面经-3(一二面)
头像
Kevin_233
编辑于 2021-04-01 12:16
+ 关注

字节跳动前端实习面经-3(一二面) 内部员工回复

年前又面了一次字节跳动,不过还是凉了。趁着过年,把面经贴上来,供大家参考。

部门:上海-广告创意中心

一面(1月22日)
自我介绍
项目
项目有哪些难点
现在在做什么项目,介绍一下
URL输入以后发生了什么
script标签上的 async 和 defer 分别有什么作用
为什么JS执行的时候要阻塞HTML解析
HTTP2有了解吗
HTTPS有了解吗
TCP UDP的区别
XSS CSRF 有了解吗
事件委托、事件冒泡、事件捕获
手写事件委托
手写发布订阅 EventEmitter
CSS动画了解吗
JS如何实现动画
两个链表找相交节点
cookie和session了解吗,session有哪些存储方式
微信登录怎么实现
小程序的原理
看你写过爬虫,爬虫是怎么写的,数据存在哪里,怎么导出
NodeJS express koa 了解吗

手写事件委托的时候,对浏览器的API还是不够熟悉,思路基本上能想到,但是答案不完全正确。
两个链表找相交节点那道题我用了一个常规的双指针的做法,即每个链表上的指针走到尾以后,自动走到另一个链表的头,如此往复,如果有相交节点的话,两个指针必相遇。但是面试官说这个解法不够好。建议大家刷题的时候还是看看最优解法,我之前刷题的时候是解出来就算过了,看来还是要多下点功夫,更进一步。
有关「script标签上的 async 和 defer 分别有什么作用」那道题我还是存在疑问。我的回答是,没有 async 和 defer 的 script,加载和执行时都阻塞 DOM 的解析。带 async 的 script,加载的时候不阻塞 DOM 的解析,执行的时候阻塞 DOM 的解析。带 defer 的 script,加载的时候不阻塞 DOM 的解析,并且在 DOM 解析完成后才执行,所以也不阻塞 DOM 的解析。但是面试官说我的理解是错的。不知道有没有懂哥懂的。

二面(1月26日)
自我介绍
聊了很久的项目
setInterval 的细节
Promise 的细节

这次二面是被问及知识点最少的一次,大约三分之二的时间在聊项目,最后一点时间出了两个题。项目部分其实比较好发挥,因为都是自己做过的东西,问了这么多项目的细节可见面试官也是给了我不少机会的。但是最后 setInterval 的执行机制和 Promise 回答得实在有点拉胯,所以这次二面以后还是没了三面。
setInterval 的话面试官是给了几个 case,比如 set 一个 Interval 多少毫秒的,再 set 一个 Timeout 多少毫秒的,重复设置,当中有重叠,问他们的行为。这个题目具体的记不清了,当时也没答对。现在再看这倒题的话其实只要记住,setTimeout 和 setInterval 是在相应的时间把任务添加到任务队列,但不能保证它立即执行。记住这个点应该就能够解决这类问题。
Promise 的话问在一个 if 中,resolve 或者 reject 之后需不需要 return。一开始我觉得是 return 一下更保险的,但是这道题的考点其实是 Promise 的状态一旦变成 fulfilled 或者 rejected 以后,就不能再改变了。手写一遍 Promise 的源码的话其实会知道,resolve 或 reject 在被调用时,前面都有一个判断 if (this.state === "pending"),如果 Promise 的状态不是 pending 的话,Promise 相应的解析值或者错误值就不会被改变。

总结:
比起前面两次,这一次准备得算是比较多了,常规的面经中刷到的题目基本上都准备了。但是面向面经准备也有一个弊端,即知识不够系统。其实几次面试下来,面试官给的反馈都是,知识不够系统。对于在看面经的朋友们,还是建议多看红宝书、精通CSS之类系统性的书籍,对构建知识体系比较有帮助。尤其像前端这种大学里没有开设专门课程,或者开设的课程比较基础比较落后的,在自学的过程中更应该有意识地去搭建知识的系统和网络。


更多模拟面试

全部评论

(13) 回帖
加载中...
话题 回帖

推荐话题

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐