字节跳动前端实习面经-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日)邮箱里多了一封感谢信。

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

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

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

相关推荐

18 105 评论
分享
牛客网
牛客企业服务