2022届字节跳动校招前端面经(已意向)

看了牛客上很多人的面经,我也写一下回报社区。

投的时候岗位是Data,当时不太明白,现在知道是内容审核的部门。

面试内容基本是从简历延伸来的,不会有意问没有做过的内容,反之也需要对自己简历里所写的东西非常熟悉。总体来说简历里的东西(项目)能说得多一些八股就会问得少一些。

一面

面试官年轻和善有活力的样子。

  1. 先简单问了项目
  2. 项目里用了 Service Worker,用来做什么(我用来离线缓存),想想还能用来做什么(多线程的操作)
  3. 跨域(CORS)的 response 头部字段是什么(Access-Control-Allow-Origin)
  4. React 里组件间怎么通信的(集中式,消息发布-订阅,父子单向流通)
  5. 【编程】手写一个简单的 Event Emitter 的实现,主要考察对 Event Emitter 的理解
  6. 单例模式怎么理解
  7. 不同 Tab 之间怎么通信(没答上,后来查了一下)
  8. 问了 Promise api(all race settle any等等)
  9. 【编程】手写 Promise.all 实现
  10. CSS 动画了解过吗,怎么水平居中对齐?(专门问了 Flex 的答案)
  11. CSS 选择器的优先级(内联>id>类,优先级还有个无视一切选择器的 important)
  12. 你对响应式设计的理解是什么,怎么实现(CSS 媒体查询)
    当时不明白为啥会有这么一个问题,后来才发现前端里说响应式可能还有别的意思
  13. 项目的夜间模式怎么实现的(用的CSS变量)
    (面试官似乎已经不想听到 CSS 了哈哈哈,因为每次问我项目里用 JS 还是 CSS 实现的时候我都是 CSS 实现)
  14. 【编程】输入一个数字,输出该数字长度的随机字符串
  15. get 和 post 的区别(url明文区别,TCP次数,GET参数长度限制)
  16. React useCallback 什么作用(memorize函数,重新渲染时不会重新定义,但会重新运行。我之前的理解是错的,以为是 useMemo 的函数版)
  17. JS 有哪些基本类型

其他 JS 和 TS 的问题有点忘了。没记得有什么需要背的八股。

编程题也不是很算法,更注重对原理的理解。

二面

面试官依然年轻和善有活力的样子。

主要问项目,屏幕共享演示着讲的,自己做的东西比较熟悉。具体问了啥我不太记得了,一些技术细节都按着项目问的不算很八股。

宏观问题,好像问了个,学 React 的收获。

编程一

JSON 数据渲染为DOM,函数格式为

function tree(props){
    return DOMLElement
}

可以使用 React.createElement(name, props, children)。不需要运行,主要看思路。可以一行写完

function tree(props){
  return React.createElement(props.name, props.props, props.children.map( child => tree()))
}

平时我是用 JSX 语法写的组件,没有用过 React.createElement(name, props, children) 这个 API,对于 children 是什么类型的参数比较懵逼,返回值是 JSX Element 还是 HTMLElement 也不知道 。开始是 forEach + 递归写的,后来面试官说一行可以写完,我想了想说不知道一行写怎么挂载子组件上去,然后面试官又提示了 API 的用法。面试官可以说是提示的妈给提示开门,提示到家了。

编程二

判断循环链表。我用的快慢指针。

面试官:为什么不用一个指针?

一个指针也是可以的。但除了类似于 6 这种情况。于是问面试官说循环链表一定是首尾相接吗。面试官说是的。我说那一个指针也可以。

面试官:两个指针比一个指针好在哪?

可能是更快点吧……迭代次数少一点

三面

面试官散发着一种 leader 的气息。

还是问项目,讲了近一个小时的项目,不过重点不太一样,感觉得到是想了解学习方法和解决问题的能力。简称:面试官听我吹水……

和项目本身关系不大的问题大概是:

  1. 说说你对前端的理解。以及你觉得前端的价值在哪里
  2. 单页面怎么实现的?(history API)具体是哪个方法记得吗,怎么去实现的单页面路径有了解吗
  3. 你是如何解决 CSS 样式的问题的(调试的过程)
  4. 为什么没有实习
  5. Typescript 有什么好处
  6. 对前端工程化的理解(上个问题我说到了前端工程化……挖坑中)
  7. CI/CD 了解过吗,有用过吗(用过 Github Action)
  8. 面试官:NodeJS 和 Go 比较有什么不一样?(因为用过 Go 问的这个问题)
    我:NodeJS 是运行时环境,Golang 是一种语言……
    面试官:那 JS 和 Go 有什么不一样
    我:一个类型动态的一个类型静态的……
    面试官:那 TS 和 Go 有什么不一样
    大概回答了一下编译和运行上的区别。但现在想想觉得可能面试官想问的语言的适用场景?或者说你觉得哪种语言好?
  9. Typescript 有什么不好的地方吗?
  10. 为什么要做这个项目,解决了什么问题,自己做的项目花了多久,看 Golang 项目的代码看了多久,之类的问题
  11. 平时看什么信息了解新技术

HR 面

聊了聊为什么选择字节……后面差不多就是口头 offer 和流程的说明吧。

字节的效率很高,一天一面,三面后过了一个小时就 HR 面了。也很准时,体验很好。

#字节跳动前端面经##字节跳动##面经##校招#
全部评论
兄弟,hr面完多久oc呀?
点赞 回复
分享
发布于 2021-10-08 16:41

相关推荐

2 45 评论
分享
牛客网
牛客企业服务