字节跳动前端实习面经-4(一二三面)

抱歉各位这次还是凉了。本来以为这次能够走到三面,三面也没有太大的漏洞,是可以过的,没想到最后还是凉了。在这之前,已经面了三次字节跳动,每次都是在第二面凉了。
前三次的面经附在文章末尾给大家。

部门:杭州-教育

一面(2月24日)
label标签怎么用,它的for属性对应表单元素的哪个属性
DOMContentLoaded 和 window.onload 区别
实现一个简单的三栏布局,左右各100px,中间自适应。
事件循环 看输出
浏览器事件机制,事件冒泡、事件捕获,如何阻止事件冒泡
浏览器缓存机制
给一段HTML,写出它的VDOM;写一个函数去解析这个VDOM,把元素添加到DOM上。

二面(2月24日)
position 有哪些取值
absolute 基于最后一个定位的父元素定位,最后一个定位的父元素指什么
absolute 在找不到最后一个父定位的元素,相对于浏览器窗口(viewport)定位的时候,和 fixed 有什么区别
跨域有哪些方法,CORS在处理复杂请求的时候有什么需要注意的
手写数组拍平
手写并发控制

position absolute 这道题问得还是有点细的,这里查了资料,稍微和大家分享下:
先看MDN官方解释:元素会被移出正常文档流,并不为元素预留空间,通过指定元素相对于最近的非 static 定位祖先元素的偏移,来确定元素位置。绝对定位的元素可以设置外边距(margins),且不会与其他边距合并。
可以看到,「最后一个定位的父元素」指最后一个 position 不是 static 的父元素。
另外,absolute 定位还有一些小细节:
如果没有指定 left / top / right / bottom ,这个 absolute 定位元素的左上角定位点同正常流(static)的定位点。
只指定 left / right 时,top 值同正常流中的 top 值;只指定 top / bottom 时,left 值同正常流中的 left 值。
相对于浏览器窗口(viewport)定位的时候,和 fixed 的区别:
没有滚动条的时候没有差异;
有滚动条时,absolute 始终在页面的固定位置(更准确地说是相对于 body),而 fixed 始终在窗口的固定位置。(比如:向下滚动时,absolute 定位的元素会跑上去,而 fix 定位的元素位置相对于用户可见的部分(viewport)是没有变化的。

手写数组拍平写了三个方法,不过面试官表示直接 return arr.flatten(Infinity) 是不可以的,因为本来就要去实现它。上一次写数组拍平有些时日了,以为自己已经了然于心,实则不然,最后写出来还是不太优雅,这里给大家分享一个优雅的:
Array.prototype.flatten = function() {
  return this.reduce((a, b) => {
    return a.concat(Array.isArray(b) ? b.flatten() : b);
  }, []);
}

最后一题并发控制算是字节跳动的经典题了,之前刷面经的时候看到过多次,建议看到这里的同学一定去掌握下,说不定就被考到了。写的时候有点懵,连之前 Promise.all 怎么写的都记不太清了。最后感觉自己是没写出来,没想到面试官说等一下三面面试官进来。属实有点惊讶加开心,毕竟是第一次走到了三面。后来三面面试官没来,HR说三面面试官这几天都有事,最早得约到下周一了。可能是部门 leader 的 leader 吧,有点忙的样子。后来又回头看了看并发控制那题,虽然马马虎虎但是居然是写对了,有点不敢相信自己。

三面(3月1日)
项目怎么找到的,遇到的困难,小程序里面有没有什么比较奇怪的问题
提到 requestAnimationFrame,requestAnimationFrame 的执行时机
实现一个延时执行队列,要求分别在 1,3,4 秒后打印出 "1", "2", 3"
new Queue()
    .task(1000, () => { 
        console.log(1) 
    }) 
    .task(2000, () => { 
        console.log(2) 
    }) 
    .task(1000, () => { 
        console.log(3) 
    }) 
    .start()
手写判断对象中的循环引用
var a = {
    b: null,
    c: null
};
a.b = a;
a.c = a.c;
bind的作用
ES6箭头函数有了解吗,可以被bind吗
上次被问到position有哪些取值,现在那个问题搞清楚了吗
flex有哪些属性,flex是哪些属性的缩写,flex: 1 代表什么,align-self 的作用
现在在做的项目用了Vue,是怎么选型的
为什么选前端
怎么学习前端
实现斐波那契函数,并分析时间复杂度

判断循环引用那道题没有完全做出来,面试官提示可以用递归。最后一题斐波那契用递归做了,时间复杂度是O(n)。问用迭代做的话时间复杂度是多少,没有分析对。面试官说类似于二叉查找树,所以是O(lgn)。问有没有办法优化到O(n),没答上来。面试官说可以把中间的值缓存起来,不用重复计算前面的值。
以为没有太大问题,以为这回总算是可以了,没想到两天后(3月3日)邮箱里多了一封感谢信。

经历了前面三次,每次两轮,加上这次的三轮,一共九次面试,我觉得面试这件事情还是挺看缘分的。找内推人问了没过的原因,但是不太方便透露。就,缘分没到吧。要让三个面试官都看对眼,也是不容易的。也不必气馁,就继续投吧,字节跳动可以一直投的。

虽然最后三面没过,但是还是可以和大家分享一下,和一面面试官交流的过程中,请教到的他在面试实习生的时候,比较看中的点。他的答案是:基础和学习能力。还算比较容易理解吧,毕竟对于实习生不是像社招那样,招来直接干活的。对于项目经历,有的话可以锦上添花,但也不是特别重要。所以重点还是基础,基础。这次能挂掉可能还是自己差点火候,就继续努力吧。

附:前三次面经
#实习##面经##字节跳动##前端工程师#
全部评论
箭头函数应该不可以被bind吧?
点赞 回复 分享
发布于 2021-03-07 09:11
斐波那契那个O(logN)应该是矩阵幂法吧
点赞 回复 分享
发布于 2021-03-04 23:23
面试没通过的同学不要灰心,蚂蚁金服2022届实习生招聘内推也开始了,成功拿到offer的同学,可以在今年暑期入职实习,通过转正答辩后就可以拿到秋招的正式offer!即使无法参加实习也没关系,拿到春招offer可以在秋招直通终面,拿offer几率也是非常大的!PS:今年蚂蚁重点放宽了校招生名额,机会不容错过,感兴趣可发简历至我邮箱:yunkun.wjw@antfin.com
点赞 回复 分享
发布于 2021-03-02 17:47
斐波那契使用动归,循环引用可以参考深拷贝😁
点赞 回复 分享
发布于 2021-03-02 17:41
恭喜楼主了,最近一个多月才入坑前端,不知道能不能最终进到字节,感觉还差好多。不过看你也是面试了很多次,也是给了我不少信心,另外字节可以一直投那还挺友好的,但是是必须换个部门吗,同一个部门是不行的?
点赞 回复 分享
发布于 2021-03-02 17:00
楼主牛逼
点赞 回复 分享
发布于 2021-03-01 23:24
请问楼主一面最后一道VDOM的题是怎么答啊?有链接吗
点赞 回复 分享
发布于 2021-02-26 09:42
楼主 问一下字节面试第一轮第二轮之间一般间隔多久呀……
点赞 回复 分享
发布于 2021-02-25 22:11
楼主那个并发控制的题可以详细说一下吗?
点赞 回复 分享
发布于 2021-02-25 22:04
并发控制那个有什么链接分享吗
点赞 回复 分享
发布于 2021-02-25 19:43
点赞 回复 分享
发布于 2021-02-25 17:31
算法数据结构这些会考吗
点赞 回复 分享
发布于 2021-02-25 15:35
冲!
点赞 回复 分享
发布于 2021-02-24 22:41
字节的实习可以投几次呀
点赞 回复 分享
发布于 2021-02-24 22:33
楼主是什么部门呢
点赞 回复 分享
发布于 2021-02-24 22:04

相关推荐

点赞 评论 收藏
分享
11/20 火山引擎一面如何选择学习前端的学习前端过程中的感受学习过程中一些自己解决得比较有难度,比较有成就感的事页签为什么不用第三方库,和你自己做的区别是什么不同页签之间的 url 相同吗如何区分不同页签的(动态路由参数)说一下你对 websocket 的了解Websocket 如何拿到历史消息说一下文件在服务端被 ai 解析的大致流程,涉及到了哪些技术平时有用一些 ai 工具吗介绍一下双 token 无感刷新的原理请求出错时如何处理为什么不用单 token,直接延长 token 有效期不行吗为什么不全部存在 cookie 里Http 状态码有哪些500 系列一般代表什么如何处理跨域Cors 能设置哪些字段,能设置什么维度的跨域,除了域名还能设置什么什么是组合式 api,有什么好处虚拟 dom 是什么为什么一些框架的最新版在尝试去掉虚拟 dom实现一个 event 类Js 编码二叉树的实现与遍历Js 闭包应用手写11/27 火山引擎二面自我介绍接触前端时间,怎么学习的介绍一下项目,包含业务场景介绍一下技术难点介绍一下基于 websocket 的库的选择你提到了自己封装了 websocket 类,和这些库的区别是什么描述一下这个类主要的功能和 apiStomp 和 websocket 的区别是什么从网络协议七层模型上看的话,stmop 位于哪一层Tcp 和 udp 的区别Stomp 支持二进制数据传输吗还了解别的类似 stmop 的协议吗知识库用到了 rag 吗介绍第二个项目有用到微前端吗你提到了多页签功能,页签之间的隔离怎么做的权限控制的力度是怎么样的,做到了什么层级登陆怎么做的,基于 sso 还是 oauth介绍一下你了解的 oauth 的底层原理登陆态是如何保存的Jwt 的优势是什么Keep-alive 的底层原理是什么讲讲泛型判断一个变量的类型有多少种方法Promise 有多少种状态Promise all 和 race 的区别Race 的第一个失败了怎么办,会执行第二个吗,返回结果是什么前端的网络安全了解 csp 吗说一下对前端工程化的理解前端有哪些性能优化的手段了解 webpack 的 model federation 吗最小子数组和(不要求时间复杂度)实现一个 event 类12/02 字节火山三面自我介绍介绍部门业务,商业化逻辑自己的规划是什么样的介绍学生干部经历,比赛经历如何激励同学们参加学生活动的比赛中团队做了什么,自己做了什么事你觉得你们的比赛课题有实践前途吗复盘的话后续有哪些可以优化的点讨论比赛项目前端当中,做的那些事对个人成长帮助比较大说一下产品形态和技术方案这个项目是你从 0 到 1 去做的吗你刚开始的时候是如何设计代码框架的为了保证项目的扩展性,做了哪些抽象详细介绍业务拆分逻辑,一直往下拆分的话会到什么程度一个比较完整的技术方案需要包含哪些内容如何确保工程稳定性,怎么选择一个好的技术栈做业务的时候涉及到了哪些,技术栈当中有没有需要提前确定的部分什么时候开始学习的前端有什么快速学习的方法吗工作过程中,你喜欢和不喜欢和拥有什么特质的人合作针对不喜欢的人如何共处你会去做 final call 吗,强行做决定可能有哪些问题反问秋招最后的面试了,拖了好久的面经一直懒得写,但看起来有不少同学应该用得上,还是写出来了,字节的三面确实会更注重考察候选者的个人潜质和 leadership,和之前的其他的技术三面感觉很不一样
点赞 评论 收藏
分享
评论
18
105
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务