字节跳动前端面经, 已拿意向书
三面后等了一个星期, 前天中午收到了hr电话和意向邮件. 刚好晚上有空来分享一下面经
废话不多说, 先说三轮面试题
一面
- 代码执行结果分析(大致机制是这样, 不过计时用的是new Date())
document.body.style.background = 'red' let i = 1 while(i < 20000000000){ i += 1 } document.body.style.background = 'white'
- 说一下eventlop, 并给了道分析题, 其中顺带包含了网上很常见的一个for循环+setTimout闭包的代码, 这个和网上很多的类似, 不说了
- 缓存机制(启发式, 强缓存, 协商缓存)
- 三次握手, 四次挥手, 握手为什么不是三次, 挥手可以是三次吗? 拥塞控制了解吗
- cookie和web storage机制, cookie的过期时间和http-only等字段的作用, session和cookie关系, 不用cookie如何追踪信息
- 网络安全, CSRF如何避免
- 跨域相关, 并给了几个域名问能否跨域, 如何解决(估计主要是想问document.domain)
- 正向***和反向***
- ssr是什么, 内部原理, 顺带问了如何做seo优化
- 手写代码, 词频统计
- 快排是什么, 是否稳定, 复杂度分析
- 了解贪心和分治吗, 说说它们的例子
- 对nodejs理解, 自己如何使用
- 如何居中元素, 直接写css
- html语义化作用, 说几个标签, 除了让结构合理外还有什么用?
- css优先级
- 代码执行结果分析(大致机制是这样, 不过计时用的是new Date())
二面
- 手写快排
- 32匹马找出最快的四匹
- 二维码功能是如何实现(之前没了解过, 全靠直接分析想出来)
- 会后端吗, 如果让你写后端自己感觉如何
- 对前端工程化的看法
- 手写Promise.all
- 手写代码, 给所有的数组添加一个function, 入参为n, 返回数组中只出现了n次数的值
- webpack是什么, 说一说功能和理解
- css, 上下两栏固定, 中间自适应, 直接写css(尽量写出所有想到的方法)
- 如何设计一个前端router
三面
说说自己做过的项目难点
- 大文件续传
- 长轮询机制
- jwt机制, 如何实现, 刷新token时如何恢复之前因此中断的请求
- Vue使用web storage保存vuex状态做到刷新页面状态不变
- eventbus 有时为什么失效?
功能设计: 实现双十一倒计时, 先说思路, 后写代码(感觉三面主要都在这儿了, 刚开始以为是个小功能, 后来发现功力不够看待问题的角度还是不如大佬全面, 不过好歹几经提醒最后都写出来了)
如何做白屏优化, 如何统计页面代码执行时间和性能分析, 如果能拿到页面所有的包括css渲染等的性能执行结果(所有用户), 你会用它来做什么
不用ajax, 如何发送信息给服务器(这道题当时没懂, 相出了websocket, 面试结束后想到了不知道直接通过img设置src插入算不算, 还是没怎么懂)
面试都是一周一次, 因为hr问我的时候我都是让她随便安排的, 三面后等了七天拿到了意向
想想自己几个月前算法极差, 投了字节笔试都没做完, 那以后狂补算法, 没事就是lettcode, 终于在七月初收到hr电话, 被从人才库捞上来了
说说面试体验, 字节的面试还是很合理的, 面试官对于很多问题都会给出解答, 个人感觉是, 能不能一口说出答案倒是其次, 重点是能分析出得出答案的原因(所以说硬背某些东西是不可能的), 面试中我答错的点很多, 但是多是一时着急, 面试官说了下我才注意到然后给他说明了原因, 感觉他还是给分的,
就到这儿吧, 希望大家都能拿到想要的offer😀😀
#字节跳动##面经##实习##前端工程师#