字节跳动暑期日常实习前端面试

这次面试的字节跳动的幸福里部门,本来我是不想面字节跳动的,毕竟字节的算法难度是公认的高,而这又是我的薄弱环节哈哈,不过群里加了个老哥非得让我试试,那我就试试吧哈哈哈,不过听说电商和教育部门更简单一些,有点上了贼船的感觉。

一面

一面约的时间是在2021-03-31 18:00,面试面了43 min,这个时间点就很尴尬,我面完肯定就差不多七点了,食堂就没饭了,身为山科干饭王不能被这种事情打倒,我甚至还想一边吃着饭一边面试,想了想还是算了,把面试老哥馋着咋整,所以我五点就下去把饭买了吃饱了,挺撑的慌。面试的老哥挺有意思,一直在那晃哈哈哈,要不是我忍住了,我也要晃,之不顾我喜欢前后晃,老哥喜欢左右晃哈哈哈,老哥整挺好,不会的都会跟我解释一下哈哈。

  • 域名到IP的过程,就是DNS解析过程。
  • 第二次访问比第一次快,缓存机制。
  • 浏览器在下载css的时候会阻塞dom的解析吗。
  • <script>标签的deferasync
  • 两个tab互相通信。
  • https加密传输过程。
  • http2特点。
  • linux命令,如果我想kill一个Node进程该如何做。
  • 数据库事务的概念。
  • 服务器如何记录一个用户的登录态。
  • 如何区分引用类型,即类似于判断aObject还是Array
  • [] == !([])结果。
  • 实现一个单例模式。
  • js是单线程 ,怎么实现的异步。
  • 点击事件流,即js事件流模型。
  • const,如何使对象的属性不可修改。
  • margin-top/padding-top是基于父元素的哪个属性,这个老哥跟我解释了一下,因为子元素实际会影响父元素的高度,所以如果基于高双向因果会造成循环。
  • 响应式布局一般怎么实现。
  • pxemremrpx各自的区别。
  • 如何实现一整个页面的灰色,即转为将整个文档转为灰度图像filter: grayscale
  • transform:translatez(0)属性,老哥解释说这个因为可以在一个新的层级,可以提升性能。
  • Vue几种watcherrender-watchercomputed-watcherwatch-api
  • 父子生命周期顺序。
  • 实现Promise.all
  • 实现多叉树的广度优先遍历查找,自定义多叉树节点node结构(只需要定义节点结构即可,无需构建树),按照广度优先查找符合要求的节点(没有符合要求的节点返回null),比如查找电话号码为phone的用户信息,调用如下:let node = wideTraversal(node,(e)=>e.phone===phone)
  • 智力题:在岛上有100只老虎和1只羊,老虎可以吃草,但他们更愿意吃羊,假设:A每次只有一只老虎可以吃羊,而且一旦他吃了羊,他自己就变成羊。B所有的老虎都是聪明而且完全理性的,他们的第一要务是生存。问最后这只羊会不会被吃?如果是n只老虎和一只羊呢?
  • 写出这段代码执行结果。
async function async1() {
    console.log('async1 start');
    let a =await async2();
    console.log('async1 end');
}
async function async2() {
    console.log('async2');
}
console.log('script start');
setTimeout(function() {
    console.log('setTimeout');
}, 0)
async1();
new Promise(function(resolve) {
    console.log('promise1');
    resolve();
}).then(function() {
    console.log('promise2');
});
console.log('script end');

这次面试挺好玩,头一次遇到还给我解释一下的老哥,真好,而且每道题老哥都会写一个大概,最后我整理都非常轻松哈哈哈,整挺好,半小时就跟我约二面了,这方面效率是真的可以。

后续

本来是约的周五面试,然后因为打疫苗加上课调课又又耽误了,然后再约的2021-04-06 11:00二面,然后面试的时候leader老哥跟我说我是23的需要实习连续的六个月,22的可以不连续地实习三个月来着,当时内推的老哥是跟我说可以不连续的三个月来着,哈哈可能他也不清楚,不能去找老哥玩了,老哥说本来一面面评还挺不错的,这到这拉跨了感觉,这又是玩了一出当时面百度然后说时间不合适的感觉,哈哈哈。