提前批:
一面 1h左右
1. css如何实现垂直居中?(这里我就说了四种,包括行内和absolute的情况)
2. position有哪几种?分别说一下对应的效果和用法
3. css选择器优先级,这里忘了复习了有点尴尬,小细节没在意,不过大概的说出来了也算是通过了
5. 顺势问了new的操作,然后实现了一个new的函数(写了一个比较乞丐的版本,解释了一下,还行)
6. 然后因为我简历上写了会vue就问了MVVM结构,聊到了页面渲染和响应式,我就顺便讲了一下响应式
7. MVVM和MVC的区别
8. Vue生命周期,在哪个阶段可以获取页面dom信息
9. Vue的组件通信
10. 聊到一些网络相关,问了TCP和UDP的区别
11. 讲一下TCP的三次握手和四次挥手
12. 然后是问了promise有哪几种状态
13. 手写一个promise(这个我写了一个雏形,没具体实现全,有点可惜,不过面试官跟我说还行2333333一面的气氛真的real和谐充满欢声笑语)
14. 算法题:最长公共前缀,这个做过!开心!
二面 1h左右 (凉)
大概在一面结束之后5-10min吧,我先喝了几口水……一面叨叨了一个小时没停真的很累,然后二面的面试官进来了,二面就比较凉……因为字节是秋招我经历的第一场面试所以
开头问了一下项目的情况,根据项目问了一点我的工作,接触前端有多久(因为我也就一年左右的经验所以其实会的不多),在每个项目里学到了什么,没做项目的时候学了什么,怎么学的这样的问题,然后开始就是实战写代码,这波我答的就有点惨了……
1. 给了一个具体的需求让写html+css,需求大概是模块水平垂直居中对齐+不定高,按文字自适应+带灰色遮罩+弹出动画
都怪我css好久没写了写的很费劲……建议各位css可以多找几个css实例题做做!俩次面字节二面都会考具体的css实现(css的实战题我后来看了这个网站:https://www.softwhy.com/daima/css3_code 大家有兴趣也可以去看看,不过一般问的难度没有这么高。)
.2. 然后问了一下css的动画怎么做,但是我没用过……答了一个3D和rotation(dbq我好菜)后来就顺便说了几句setTimeOut, setTimeInterval和RequestAnimiationFrame,这里感觉答得不是很好
3. flex有哪些常用标签,我说了几个我用过的,面试官反问了我两个
4. 又问了一下position,这里具体解释了一下position的属性影响
5. 还是具体实现,给一个ul下面插入100个li应该怎么插入,如何优化dom操作
6. 具体实现:有一个有一百万个url的数组,如何从这一百万个url里获得资源(我答了promise和promise.all,写了一下思路,面试官要我写具体实现,就也没写得很明白,整体拉低了不少印象分。感觉字节的面试真的很看实践!光有思路是不够的!)
7. 算法:判断链表内是否存在环,这个题其实我做过,但是当时忘了……面试官提醒了一下才知道是快慢指针……真的挺不好意思的呜呜呜
总体上字节的二面特别看重具体实现,会说思路不够,需要真正的写出可以实现的代码来。一般算法就是leetcode的easy/medium,不会太难,一些基本概念也会挖的比较深,总体上说还是很有难度。总之提前批止步二面了。字节的面试一般一面和二面肯定会连在一起,如果三面面试官也有时间的话三面也会连下来,总之要是过了一阵子都没消息基本上就是凉了qaq总之这次面试结束大概过了半个月左右hr小姐姐又捞了我一手跟我约了正式批再来一次,还很贴心地嘱咐了我好多让我多做点题哈哈哈哈哈!
正式批
一面 1h左右
1. http请求的几个常见方法
2. 说下get和post 的区别
3. get和post的具体应用场景和一些注意事项(忘了这里是啥问题了,总之一路聊到了301,302和307状态码,聊了一下重定向的一些安全处理)
4. 因为刚刚说了在http跳https的时候存在post改get的情况所以问了一下为什么(操作幂等性)
5. 线程和进程的区别(没学过操作系统所以直接说了不知道,放弃挣扎.jpg)
6. 说下跨域
7. http简单请求是什么意思
8. 浏览器缓存策略
9. TCP和UDP的区别
10. 了解流媒体对UDP稳定性的优化处理吗(不了解。但是面试官说没事回去可以自己去看看)
11. 开始聊js,js的基本数据类型(说了symbol和bigInt)
12. 哪些操作是异步的?(说了promise setTimeout)
13. promise的一些基本概念
14. async await的一些用法
15. js继承的几种方式(居然没让我写代码我都准备好了……)
16. css好像考了点啥不太重要的我忘了dbq,总之还有对项目细节的一些提问,好像还问了一下排序算法的时间复杂度空间复杂度……(具体忘了)
17. 做个题,实现链表尾部插入新节点。这个我写得挺磕磕绊绊的233333但是在面试官的提醒下还是做出来了,主要是考虑判断传入链表是否有头结点,是否为尾部指针
18. 算法题:版本号判断,还是挺简单的
总之基本上一面一个小时左右,然后叫我等了一会(大概十分钟?)来喊二面面试官
二面 1h左右
二面面试官感觉非常的和蔼,但是也很有气场!二面时间也差不多一个小时,主要是被我写题磨磨蹭蹭给耽误了好多时间呜呜呜
1. 大概问了一些项目相关问题,比如印象比较深的技术点,怎么学习的和解决的balabala
2. 开始正式问问题:css的垂直居中和水平居中(说了一堆)
3. css选择器优先级(这次我会了!自豪!)
4. html的dom树如何生成的(一杆子捅到虚拟dom被友善地提醒了扯得有点远,dbq这题我不会)
5. 小程序和pc页面有什么差异(因为项目里写了小程序)
6. 项目里的一些性能优化的点
(此处应该还有几个题但是我忘了就这样吧)
7.做个题,看代码是否能完成输出,如果不能就说下几个改的点,题太长了没记写下几个考点吧。大概是一个利用异步实现1秒输出一个条目的一个函数,生成条目要读取对象内的数据,主要修改点是:1.for循环内使用let控制作用域2. setTimeout单纯用1000无法实现1秒输出一个需要乘以i+1 3.作用域无法绑定对象,获取不到数据(这里说了几个改变this指向的方法比如箭头函数bind/apply/call这样的)4.这个我没想到面试官提醒我了一下i是从零开始的但是条目从1开始打需要加1……其实第二条的时候我还记得这个事的结果最后我忘了有点尴尬23333
8. 代码实现:设计一个任务队列,有on,trigger和off方法,分别完成注册事件触发回调,触发当前事件全部回调,和取消当前事件的任务队列的功能(其实不难,主要是我写的磨磨蹭蹭的……最后想通了就写的很快了,也很感谢面试官的耐心等待和思路提醒!)
9. 一个挺简单的算法实现,在递增数组内寻找连续值并放进新数组最后返回一个二维数组这样子([1,2,3,5,6,9,10]=>[[1,2,3],[5,6],[9,10])反正挺简单的写的也很快,被夸了思路挺清晰哈哈哈开心!毕竟我算法超菜的难得碰上一个会写的……
三面 30min左右
hr面 30min左右
面完三面之后急匆匆地问hr小姐姐什么时候能出结果,小姐姐说不着急的她那边有消息立刻通知我。然后我收拾了一下准备出门吃饭结果就在收拾包的时候接到hr小姐姐的电话问我可不可以现在hr面(啊当时超开心!)
1. hr面也挺常规的吧,看了我的投递记录发现我来字节面了这么多次问我这几次有什么进步,学了什么(终于给我放进去了我太难了.jpg)
4. 介绍一下简历上的三个项目,为什么要选这三个项目进行展示?
4. 在项目中学到了哪些东西,有什么心得体会
5. 怎么学习前端的,怎么规划未来学习
6. 小组合作中的压力怎么应对的,如果要面对失败会怎么调节(可能是因为全程我都蜜汁自信就问了这个)
7. 希望能来实习,大概什么时候可以来,可以来实习多久?
全部评论
(7) 回帖