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