字节飞书前端一面二面三面

时间线

  • 投递 8.20
  • 笔试 8.28
  • 一面约面 8.29
  • 一面 9.15
  • 二面约面 9.15
  • 二面 9.20
  • 三面约面 9.21
  • 三面 9.26
  • 转部门 9.27
  • 换部门约面 9.28
  • 换部门面试 9.29

一面(40min)

面试题主要集中在React、HTTP、网络安全、浏览器

网络安全

  1. 了解哪些网络攻击
  2. XSS和CSRF攻击区别

浏览器

  1. 影响浏览器性能
  2. 重排重绘
  3. 浏览器存储相关

React

  1. setState同步异步

Http

  1. Http1.1. 2.0 3.0区别

手撕

  1. 最长不重复字符长度(原题,秒

总结

  1. 面试官感冒了感觉他十分累...因为去医院没回推迟了半小时...
  2. 面试官首先肯定了我学习能力,其次说我对网络安全、HTTP这一块不是特别熟悉,容易混淆,希望多练
  3. 估计是凉了,就算侥幸过了二面三面也过不了...(自我感觉,我做得东西太简单了
  4. 感谢字节给面试!呜呜!字节体验卡达成!

更新:还在面美团...字节竟然过了!(什么?字节面试体验卡充值成功!!!!不可思议!)我要奋发努力了!我真的想留在杭州啊啊啊啊啊!
(唯一的杭州的有进度的!)

二面(1h)

又是感觉凉凉凉的一面...我乃二面杀手菜鸡是也...

  1. 项目最得意的点
  2. 虚拟列表怎么实现的
  3. 模糊搜索框搜索
    • 避免后一个搜索比前一个结果先返回导致模糊搜索匹配错误
  4. 防抖节流区别
  5. Promise.all怎么实现
  6. 并发请求
  7. 三列布局
    • flex详细说
    • basis计算
  8. 箭头函数与普通函数的区别
  9. 普通函数各种情况下的this指向问题
  10. 手撕1:扁平化数组
  11. 手撕2:嵌套数组最大深度
  12. 反问1:考察和注重能力:聪明-潜力-逻辑思维能力-沟通交流能力

自我总结

  1. 实战经验太少
  2. 解释的时候可以结合案例不要在那一直说说说...
  3. 沉默的时候面试官会默认你在思考,不会影响你,但我是真的不会啊...于是中途有至少30s的gap*2
  4. 等待感谢信ing

三面(40min)

自我感觉凉凉,幸运女神不可能再降临了呜呜

  1. 自我介绍
  2. 学习路线
  3. useCallback && useMemo (回答得极差
  4. 手写:
  • 并发数
  • 看输入输出

总结

  1. 基础一般,补充基础
  2. 这周有结果

更新:三面太紧张了,表现也不是很好吧...9.27被转部门了,还是飞书,只是去了另一个大部门,9.28约面进入新一轮面试,机会不大

#字节跳动##前端开发#
全部评论
还有就是 并发数 是啥意思呀
点赞 回复 分享
发布于 2022-10-12 22:56 湖北
三面问题这么少吗
点赞 回复 分享
发布于 2022-10-12 22:55 湖北
什么部门可以问下吗
点赞 回复 分享
发布于 2022-10-05 09:12 四川
我也被捞了,10.13才约面.....
点赞 回复 分享
发布于 2022-09-29 18:33 上海
是广州的吗?
点赞 回复 分享
发布于 2022-09-27 04:32 广东
楼主,求后续!
点赞 回复 分享
发布于 2022-09-21 16:46 香港
楼主好可爱哈哈哈哈 不知道今年秋招哪个厂能捕获楼主哈哈哈
点赞 回复 分享
发布于 2022-09-15 17:30 广东
老哥 我想问下你是如何做到约面时间与面试时间相差半个月的?😂😂
点赞 回复 分享
发布于 2022-09-15 15:40 江苏

相关推荐

字节跳动前端二面失败面经:复盘与反思一、面试整体感受本次字节跳动前端二面的考核强度明显提升,面试官从计算机基础、CSS 知识,到 JavaScript 核心概念与实践应用层层深入,虽然最终遗憾未通过,但这次经历让我清晰认识到自身知识体系的薄弱环节。二、面试问题回顾与解析1. CS 基础与 CSS 考察• 实现父容器一半大小的正方形:我第一反应是使用 vw 单位,将子容器的 width 和 height 都设置为 50vw。但面试官的意图更倾向于基于父容器尺寸的相对计算,正确思路应该是通过百分比结合 padding-bottom 实现等比例正方形(如 width: 50%; padding-bottom: 50%;),并利用 position 或 flex 布局定位到父容器内。• CSS 盒模型:我准确回答了 标准盒模型(content-box) 和 怪异盒模型(border-box) 的区别,重点说明了 box-sizing 属性对尺寸计算的影响。2. JavaScript 核心概念与 BOM 考察• BOM(浏览器对象模型):当被问到 BOM 相关知识时,我对 window 对象的属性(如 location、history)和方法(setTimeout、addEventListener 等)掌握不够熟练,回答较为模糊,暴露出日常学习中对浏览器环境底层知识的忽视。• 事件委托:面试官询问事件委托原理时,我错误地将其等同于事件冒泡。实际上,事件委托是利用事件冒泡机制,将子元素的事件处理委托给父元素,从而减少内存占用和提高性能。例如,在列表项点击事件中,可将点击事件绑定在列表容器上,通过判断事件源 event.target 处理具体逻辑。3. 代码实战环节• 实现 JavaScript 链式调用并支持 bind 功能:题目要求实现类似 i.initial(5).add(5).minus(3).plus(5).result 的链式调用,并能使用 bind 修改内部状态。我顺利完成了基础的链式调用逻辑,通过返回 this 实现连续调用,并维护一个内部变量记录计算结果:function Chain() {  this.value = 0;  this.initial = function (num) {    this.value = num;    return this;  };  this.add = function (num) {    this.value += num;    return this;  };  this.minus = function (num) {    this.value -= num;    return this;  };  this.plus = function (num) {    this.value += num;    return this;  };  this.result = function () {    return this.value;  };}但在实现 bind 功能时,由于对 bind 改变函数 this 指向的原理理解不足,未能完成。正确思路是通过 Function.prototype.bind 方法创建一个新函数,在新函数中调用原始方法,并传入绑定的参数和 this 值。• 封装安全的 React Hook:需求是处理可能失败的异步请求,并确保数据安全。我通过 useState 和 useEffect 实现了一个简单的 fetch 请求钩子,在 catch 块中处理错误,并添加了加载状态和错误信息的状态管理:import { useState, useEffect } from'react';const useSafeFetch = (url) => {  const [data, setData] = useState(null);  const [loading, setLoading] = useState(true);  const [error, setError] = useState(null);  useEffect(() => {    const fetchData = async () => {      try {        const response = await fetch(url);        const result = await response.json();        setData(result);      } catch (err) {        setError(err);      } finally {        setLoading(false);      }    };    fetchData();  }, [url]);  return { data, loading, error };};• 手写 JSONP 函数:要求传入 URL、成功回调、失败回调和超时时间。由于对 window 对象动态创建 script 标签、onerror 和 onload 事件,以及 clearTimeout 等原生方法不够熟悉,最终未能完整实现。正确实现思路如下:function jsonp(url, successCallback, errorCallback, timeout) {  const script = document.createElement('script');  const callbackName = `jsonp_callback_${Date.now()}`;  window[callbackName] = (data) => {    clearTimeout(timer);    document.body.removeChild(script);    successCallback(data);  };  script.src = `${url}&callback=${callbackName}`;  script.onerror = () => {    clearTimeout(timer);    delete window[callbackName];    errorCallback(new Error('JSONP request failed'));  };  document.body.appendChild(script);  const timer = setTimeout(() => {    document.body.removeChild(script);    delete window[callbackName];    errorCallback(new Error('JSONP request timed out'));  }, timeout);}三、总结与反思此次面试失败暴露出我在 BOM 细节、事件机制、函数绑定原理 等基础知识上的不足,以及 复杂场景下代码实现能力 的欠缺。未来准备面试时,需更深入理解 JavaScript 原型链、作用域、this 机制等核心概念,同时加强手写代码的练习,尤其是对原生 API 的熟练运用。希望我的经历能为大家提供参考,避免踩坑!
字节跳动二面520人在聊 查看7道真题和解析
点赞 评论 收藏
分享
评论
7
52
分享

创作者周榜

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