关于面试:面经分享-收获多家大厂offer-分享我的2022秋招经历

36次阅读

共计 16221 个字符,预计需要花费 41 分钟才能阅读完成。

前言

好久不见,我是 LeBron,有段时间没写博客了。最近几个月的大部分精力都放在秋招上了,边实习边秋招还是挺吃力的,总算后果还是不错。

先介绍一下集体状况:2022 届双非本科应届生,我的项目教训和经验还算丰盛,在字节实习至今也快 8 个月了,详细情况能够来我的博客看看哈 : LeBronChao’s Blog

秋招从 7.19 ~ 10.24 历时三个多月,腾讯、阿里、字节、百度、大疆、华为、Shopee、滴滴、美团、拼多多 10 家公司,将近 40 场口试 / 面试(自我介绍都快念麻了),根本全副通过收到 offer,借此机会做个总结和大家分享一上面经。

面试前的筹备

简历

能够参考前端 Offer 提速:如何写出有亮点的简历

这个其实不必讲太多了,尽量地写出亮点,比方

  • 开源我的项目教训
  • 实习经验 & 重点产出
  • 技术深度展示 / 出名开源框架 PR
  • 技术激情 / 影响力
  • 知识产权 / 论文
  • 校园我的项目教训 / 亮点经验
  • 等等 …
  • 重点:Word 格局容易出问题 尽量用 PDF 格局

相应岗位常识

这个其实靠平时积攒会比拟多一点,面试前能够通过面经做个自测,我面试的大部分是前端岗位次要分为以下几个方面

  • 计算机网络

    • TCP / UDP
    • HTTP / HTTPS / WebSocket
    • LB / CDN / DNS / IP
    • 网络安全
  • 操作系统
  • 开发技能 & 原理

    • HTML / CSS(LESS) / JS / TS
    • Vue、React、Node、Webpack 等
    • 浏览器 / 小程序 / 跨端
    • 性能优化 / 安全策略
    • 这个依据本人的理论状况来定,不相熟的不要写到简历里
  • 算法题 / 智力题

    • 零碎学习数据结构和算法
    • 而后就是刷题了,Hot100 和常见题刷起来吧,次要刷 easy 和 middle,hard 没必要
    • 造就触类旁通的能力
    • 题库

      • 力扣
      • CodeTop 企业题库
  • 相应的技术广度扩大和深度摸索
  • 新的技术动静关注水平,比方

    • ES 新个性
    • Vue3 的更新和比照
    • 字节的 Modern.js
    • 阿里的 Kraken
  • 提前想好常见问题的答案和对面试的公司做初步的理解,比方

    • 你的我的项目有什么亮点和难点
    • 你会从哪些角度去思考抉择毕业后的第一家公司
    • 你感觉 XXX 是一家怎么样的公司
    • 你有什么长处和毛病
    • 为什么想做全栈工程师
    • 你的职业规划是怎么样的

感兴趣的话能够看看这篇文章:[倡议珍藏] 初中级前端应该把握的基础知识

我的公众号、博客里也有挺多相干常识的解说,感兴趣能够看看:[前端 LeBron]()

欢送关注我的微信公众号:

自我介绍

你和面试官个别都是初次见面,他只能通过你的简历和自我介绍来理解你。所以说不是特地相熟的货色不要写到简历里,自我介绍也不要说。面试官个别也根本不会逐字逐句地看你的简历,可能没法发现你的亮点,自我介绍这不是把机会给你了吗(开始装逼哈哈哈。自我介绍能够由你的根本信息、我的项目教训、技术亮点和解决哪些比较复杂的问题、个人经历的亮点和将来的布局简述组成。也能够尝试疏导面试官问你问题,个别面试官都会从简历 / 自我介绍中开始提问。自我介绍要扼要老练,个别 1min 左右就好了。

总结

三个多月的秋招生存告一段落,最终抉择了留在字节工作。新期间的工作带来了新的挑战,没有躺赢的命那就站起来奔跑吧!致力是会有后果的!

我是一个行将毕业的 22 届双非本科应届生,在字节游戏中台做前端开发工作。心愿我的秋招面试教训能够给予正在找工作的你一点帮忙,特地是正在奋战秋招 / 实习的同学、学弟和学妹们。字节游戏中台前端部门求贤若渴,继续招人中。感兴趣的同学能够通过内推链接投递,有问题也能够加微信沟通。Vx:LeBronChao-

游戏中台内推:

  • 深圳

    • 社招:前端开发(高级)工程师 - 游戏中台
    • 校招 & 实习:前端开发实习生 — 有转正机会
  • 上海

    • 社招:前端开发(高级)工程师 - 游戏中台
    • 校招 & 实习:前端开发实习生 - 独立闭环业务(可转正)
  • 【社招总内推链接】

    • https://job.toutiao.com/s/R6q…
  • 【内推码】

    • 4FCV6BV
  • 【我的邮箱】

    • chaoweiwen@bytedance.com

废话不多说,间接下面经↓

字节

10.9 实习转正问难 通过

腾讯

8.17 WXG 游戏一面 60min 通过

  1. 实习工作次要负责什么
  2. 小程序开发中遇到过什么问题?怎么解决的
  3. 实习我的项目的难点、亮点
  4. 字节小程序和微信小程序有什么区别
  5. Uni-app 框架做了什么工作、解决?
  6. 用 Uni-app 开发的过程中遇到过什么问题?怎么解决的?
  7. 从输出网址到整个渲染过程形容
  8. 除了 HTTP 缓存还有什么缓存形式?
  9. HTTP 缓存、localstorge、sessionstorge、cookie、indexDB 这些形式实现缓存有什么区别、特点
  10. 做过 CDN 相干的工作吗?
  11. CDN 有什么益处呢?
  12. 聊参加的开源我的项目技术栈、云开发
  13. 过程和线程的区别?
  14. 过程间通信形式有哪些?
  15. 有用过 Mysql?解说一下什么是事务?
  16. 二叉树有哪些遍历形式?哪些属于 DFS?
  17. 有用过预处理器吗?有什么特点?
  18. 有思考过多主题款式吗?怎么实现?
  19. Node 用过吗?用过哪些相干框架?做过哪些货色?
  20. 手撕 jsonStringfy
  21. 实现 JSON.parse 的思路?除了 eval 和 new Function(AST、编译原理)
  22. 跨端形式有哪几种解决方案?

8.18 WXG 游戏二面 40min 通过

  1. 为什么抉择做前端?
  2. 前端和其余方向相比,比方机器学习,有什么区别和特点
  3. 怎么样才算前端做得比拟好?
  4. 有做过性能优化吗?怎么做得?
  5. 小程序是怎么跑在客户端的?
  6. 双线程架构有什么益处呢?
  7. 如果不应用双线程架构会怎么样?在技术指标上会有什么变动?
  8. 体验卡顿问题?一帧大略多少毫秒?
  9. JS 和渲染,你感觉一帧各占多少毫秒比拟适合?
  10. 说一说各种跨端的形式?JSB 是怎么进行桥接的?
  11. 除了 JSB 还有什么连贯形式吗?
  12. 做过性能优化,有哪些操作?首屏渲染优化了多少秒?达到目标了吗?达到你本人的指标了吗?
  13. 各个操作别离优化了多少毫秒?
  14. CDN 的原理?为什么资源加载快?
  15. 如果你是一个 CDN 服务商,你会怎么设计你的 CDN 来吸引开发者。
  16. 什么状况下会存在跨域问题?
  17. 你在字节感触怎么样?为什么会抉择来微信?
  18. 你感觉首屏渲染多少秒是一个合格的规范?
  19. 之前有投递过腾讯吗?为什么没有来?
  20. 前面能够过去实习吗?实习多久?后续在哪个城市倒退?
  21. 反诘环节、业务介绍

8.30 WXG 游戏三面 30min 通过

  1. 实习多久了?为什么投递腾讯?
  2. 聊实习业务、技术难点、亮点,实习对集体的晋升
  3. 小程序怎么调用客户端能力?JSBridge 初始化须要多少工夫?
  4. Faas 和一般的后端工程服务有什么区别和特点?
  5. 原子服务之间的调用会有什么问题吗?
  6. 你本人起一个 Node 后端我的项目?须要做什么操作能让它更好更稳固地运行呢?
  7. 算法题 LeetCode middle 122 交易股票的最佳时机 II
  8. 反诘环节、新人造就、业务理解

9.7 WXG 游戏 hc 有余流程完结

9.14 TEG 腾讯大数据(数平)一面 40min

  1. 字节实习我的项目介绍、难点、亮点、挑战
  2. 企业我的项目性能如何?FCP、FMP 如何? 是否进行了分包加载?包体积大小如何?
  3. Vue 路由模式有几种?有什么区别?
  4. Vue 最大的长处和毛病是什么?
  5. 有实战过 React 吗?和 Vue 比照有什么区别和优缺点?
  6. Class 组件和函数组件有什么区别?
  7. React 组件间数据传递形式
  8. 用过打包工具吗?介绍一下 Webpack
  9. 用过哪些 Loader 和 Plugin?
  10. Plugin 的原理和编写思路是怎么样的?
  11. 前端异样和性能监控怎么做?让你设计一个异样和性能监控平台你会怎么设计?
  12. LocalStorge 和 cookie 有什么区别?
  13. ES6 实现排序有哪几种形式?
  14. 理解 Set 吗?介绍一下
  15. 解决跨域的形式有哪几种?别离是什么原理和实现模式?
  16. 有用过代理工具 / 抓包吗?
  17. 集体职业规划
  18. 用过 Node 吗?有哪些利用场景?
  19. 字节转正了吗?会因为什么抉择一家公司?思考哪些因素?
  20. 反诘环节、业务介绍

9.15 TEG 腾讯大数据(数平)二面 60min 通过

  1. 物联网工程和计算机是什么关系?
  2. 大学学习了哪些课程?计算机系列课程学过吗?
  3. 简历上各个我的项目挨个聊
  4. 数组和链表有什么区别和特点
  5. 链表有多少种类型?
  6. 双向链表的利用场景有哪些?
  7. 一道贪婪算法题

    有 1、5、10、50、100 面值硬币,输出一个长度为 5 的数组,示意有多少枚对应面值的硬币,再输出一个须要凑齐的数值,输入起码须要多少枚

  8. 常见的排序算法有哪些?
  9. 快排的实现思路是?工夫复杂度是?冒泡呢?
  10. 有用过哪些设计模式?介绍一下
  11. 罕用 Vue 的哪个版本?nextTick 是怎么实现的?什么原理?晓得 process.nextTick 吗?
  12. Vue 异步更新介绍一下
  13. 聊浏览器执行机制、事件循环、多线程架构
  14. Vue 怎么实现数据双向绑定和视图更新
  15. 有用过 ts 吗?有什么益处和特点?
  16. 聊字节实习我的项目
  17. 聊小程序 WebView 预加载、热更新机制
  18. 反诘环节、业务介绍

9.23 TEG 腾讯大数据(数平)GM 三面 20min 通过

  1. 本科期间产出了很多论文和知识产权?是很早就开始做了吗?
  2. 你是一个学霸吗?还是实际能力比拟强?
  3. 聊字节实习我的项目和工作
  4. 聊职业规划、集体倒退
  5. 为什么想转全栈?
  6. 去字节实习的目标是什么?
  7. 字节如何评估你的实习工作?
  8. 你如何做你的述职问难?
  9. 你如何思考你的校招去向,会因为哪些因素抉择一家公司?目前更偏向哪家公司?说说你的想法
  10. 你感觉腾讯和字节有什么不同?
  11. 反诘环节

9.26 TEG 腾讯大数据(数平)HR 面 20min 通过

  1. 为什么不思考考研?
  2. 介绍一下取得国一等奖的我的项目和发明专利
  3. 介绍一下开源我的项目
  4. 你感觉字节是一家什么样的公司?
  5. 你感觉腾讯是一家什么样的公司?
  6. 你感觉 TEG(技术工程事业群)的价值怎么体现?
  7. 你感觉退出腾讯 TEG 工作有什么挑战
  8. 为什么想转全栈?
  9. 手里还有其余 offer 吗?怎么思考和抉择
  10. 哪里人?后续在哪个城市倒退?
  11. 有无亲属在腾讯
  12. 反诘环节

阿里

8.13 淘系一面 60min 通过

一面老板间接上了我是没想到的

  1. 为什么想来阿里?
  2. 聊一下你感觉做得比拟好的我的项目,有什么难点和亮点?
  3. 聊负载均衡器我的项目

    1. Node 过程间通信形式是怎么实现的?
    2. Node 多过程架构是怎么样的?怎么监听同一个端口
    3. 一致性哈希算法的实现原理是?
    4. 最小连接数算法的实现形式是?
    5. 介绍一下 ARP 协定的作用
    6. 你的负载均衡器有用到 ARP 利用吗?怎么利用?
  4. 聊企业我的项目亮点
  5. 讲讲 Faas 的了解,优缺点
  6. 小程序的技术架构原理是怎么样的?
  7. 小程序为什么要应用双线程 +JSB 的架构?
  8. Vue3 的 hooks 原理?
  9. Vue3 有哪些 hooks API?
  10. 讲一讲 Webpack 的原理
  11. 反诘环节

9.7 淘系 拖了一个月告知 hc 有余 …

华为

10.16 一面 60min 通过

  1. 算法题

    碰撞检测算法,给定一个数组示意一系列行星。对于数组的每一个元素,其绝对值示意行星的大小,正负示意行星挪动的方向(正示意向右挪动,负示意向左挪动)找出碰撞后剩下的所有行星。碰撞规定:两个行星互相碰撞,较小的行星会爆炸。如果两颗行星大小雷同,则两颗行星都会爆炸。两颗挪动方向雷同的行星永远不会产生碰撞

    用例:

    [5, 10, -5] => [5,10]

    [8, -8] => []

    [10, 2, -5] => [10]

    [-2, -1, 1, 2] => [-2, -1, 1, 2]

  2. Vue 申明周期有哪些
  3. 讲一讲什么是 MVC
  4. Vue 和 React 有什么区别
  5. Vuex 有哪些应用场景?为什么应用?Vuex 的实现原理是?
  6. Vue 的路由模式有哪些?区别和实现原理是?
  7. 物联网场景 Web 和惯例 Web 场景有什么区别?
  8. HTTPS 加密原理是?
  9. 讲讲你做的负载均衡器
  10. 小程序和 h5 有啥区别?
  11. Uni-app 的转译原理介绍一下
  12. 反诘环节、业务介绍

10.16 二面 45min 通过

  1. 算法题

    给定一个数组,外面有 6 个整数,求这个数组可能示意的最大 24 进制的工夫是多少,输入这个工夫,无奈示意输入 invalid。

    输出形容:

    输出为一个整数数组,数组内有六个整数。输出数组长度为 6,不须要思考其它长度,元素值为 0 或者正整数,6 个数字每个数字只能应用一次。

    输入形容:

    输入为一个 24 进制格局的工夫,或者字符串 ”invalid”。

    备注: 输入工夫格局为 xx:xx:xx 格局。

    示例 1 输出[0,2,3,0,5,6]

    输入 23:56:00

    示例 2 输出[9,9,9,9,9,9]

    输入 invalid

  2. 介绍知识产权(发明专利、实用新型专利、软件著作权),如何产出,团队形成和集体角色。
  3. 介绍集体国奖我的项目
  4. 大学四年的布局、经验和职业规划
  5. 实习过程中遇到的技术难点、亮点
  6. 反诘环节、业务介绍

10.24 三面 40min 通过

  1. 思考留在字节吗?从哪些方面思考抉择一家公司?
  2. 讲一讲你是怎么学习前端开发的?遇到过哪些难点?怎么解决?学习周期多久?
  3. 聊字节实习我的项目、工作、产出
  4. 实习工作单干过程中有遇到什么问题吗?怎么解决这些问题?
  5. 单干过程中的沟通工夫占比多少?
  6. 实习和学业怎么均衡的?
  7. 职业规划是怎么样的?
  8. 动向城市
  9. 反诘环节

大疆

8.1 口试 90min(60min 实现)通过

3 单选

  1. 以下判断单链表有环办法谬误的是 暴力穷举、找雷同尾结点、哈希缓存、快慢指针找交点
  2. 依据前序和中序选后续遍历的后果
  3. JavaScript 解释器运行到什么阶段能够判断出不须要运行 func2 语法解析、词法解析、语义剖析、生成字节码
// 已知
//b.js 蕴含如下代码
import {func1} from './a'
//a.js 蕴含如下代码
export function func1(){}
export function func2(){}

6 多选

  1. 空间复杂度为 O(1)的算法有 归并排序、堆排序、冒泡排序、疾速排序
  2. 对于 HTTP 1.0/1.1/2.0 说法正确的事

    1. HTTP1.0 每次申请须要建设一个 TCP 连贯
    2. HTTP/1.1 反对多路复用
    3. HTTP/2.0 反对二进制解析
    4. HTTP/2.0 反对服务端推送
  3. Chrome 采纳了多过程架构,创立大量 tab 时会启动独立的工作过程,以下对于线程、过程比照形容正确的是

    1. 过程安全性更高,tab 解体不会相互影响
    2. 过程启动老本更低,能够疾速创立 tab
    3. 过程间通信效率更高,更容易反对插件化
    4. 过程治理更容易,tab 独立渲染更快。
  4. 对于 JS 原型链形容正确的是

    1. 任何一个函数都有 prototype 属性
    2. 任何一个非 null 对象都有 proto 属性,等同于 prototype
    3. 原型链属性查找优先级为:实例**proto___ > 实例自身
    4. 严格模式中,全局作用域 this 为 undefined
  5. let a = 2;
    function func() {
      let a = 1;
      return (b) => {return (c) => {
          const ret = a + b + c;
          a *= 2;
          return ret;
        }
      }
    }
    ​
    let f1 = func();
    let f2 = func();

    console.log(func()(1)(2), func()(1)(2)); // 4 4

    console.log(f1(1)(2), f2(1)(2)); // 4 4

    console.log(f1(1)(2),f1(1)(2)); // 4 4

    console.log(func()(1)(2), func()(1)(2)); // 4 5

  6. 对于 Promise、async、await 形容正确的是

    1. Promise 用于解决回调嵌套过深的问题
    2. await 能够以”同步“的形式实现异步的逻辑
    3. Promise rejected 状态能够变为 pending 状态
    4. Promise 执行过程中能够勾销

    5 问答

  7. EventLoop 看代码写输入

    new Promise((resolve) => {console.log(1);
      setTimeout(() => {console.log(2);
        resolve();}, 0);
    }).then(() => {console.log(3);
    });
    ​
    console.log(4);
    ​
    setTimeout(() => {console.log(5);
    }, 0);
    ​
    setTimeout(() => {console.log(6);
    }, 1);
  8. 简述浏览器的垃圾回收机制
  9. 介绍 Vue 的双向绑定实现原理及流程
  10. enum WidgetType {
      Button,
      Text,
    }
    ​
    class Widget {draw() {}}
    ​
    class WButton extends Widget {
      type: WidgetType = WidgetType.Button;
      draw() {console.log("draw Button");
      }
    }
    ​
    class WText extends Widget {
      type: WidgetType = WidgetType.Text;
      draw() {console.log("draw Text");
      }
    }
    ​
    class WButtonText{
      button: WButton
      text: WText
      constructor(button: WButton, text: WText) {
        this.button = button;
        this.text = text;
      }
      draw() {this.button.draw();
        this.text.draw();}
    }
    ​
    function render() {let btext = new WButtonText(new WButton(), new WText());
      btext.draw();}
    ​
    /*
    请尝试应用设计模式改写代码,使得 render 中能够用如下形式调用,失去雷同的输入
    */
    ​
    function render() {let btext = new WText(new WButton());
      btext.draw();}
    ​
    ​
  11. 实现一个搜索器,输出一个二叉树的根节点,调用搜索器的 next()办法,将返回二叉树中下一个最小的数;调用搜索器的 hasNext 办法,将返回是否存在下一个数。二叉树节点是无需整数

附加题:

能不能给非可视化方向的同学一点机会 …

  1. (可视化方向附加题)简述 WebGL 渲染管线
  2. (可视化方向附加题)简述你理解的 3D 场景治理数据结构及其实现原理
  3. (可视化方向附加题)在 WebGL 3D 场景中,要实现物体暗影成果,请简述实现原理。假如场景区域很大,要如何优化暗影成果。

8.19 一面 60min 通过

  1. 为什么抉择来大疆?不留在字节吗?
  2. 你会因为什么因素抉择一家公司?
  3. 有其余公司的 offer 吗?
  4. 介绍一下 V8 垃圾回收机制?
  5. 晓得 V8 垃圾回收机制比照编码有什么益处?
  6. 什么状况会呈现内存透露?
  7. 你编码有呈现过内存透露或者有排查过吗?
  8. 怎么避免内存透露?排查解决治标不治本
  9. 用的什么技术栈?有用过 TS 吗?
  10. 介绍一下你的实习我的项目业务
  11. 我的项目有什么难点?亮点?
  12. 多主题的实现你有调研过其余的解决方案吗?这个需要的背景是什么?为什么不调研别的计划?为什么不和组内同时探讨?为什么没去看 antd 的源码实现?
  13. 你的我的项目外面有波及到权限等级零碎的设计吗?
  14. 让你设计一个省市区的级联选择器你会思考哪些点?
  15. 说说你的开源我的项目?
  16. 有用过哪些 ES6 新个性,都说一说
  17. 箭头函数 this 指向哪里?在不同的中央执行 this 执行会指向不同吗?
  18. const 和 let 带来了什益处?
  19. 除了块级作用域还有什么作用域?
  20. 过渡应用闭包会呈现什么问题?
  21. promise 呈现以前是怎么解决异步编程的?promise 有什么益处?编程思路产生了什么转变?会呈现什么问题?
  22. 从哪里看到的大疆招聘信息?理解大疆是怎么样的一个企业?
  23. 你感觉来大疆做前端你会做哪些工作?
  24. ↑你感觉你的形容可能吸引人吗?
  25. 业务介绍、反诘环节

8.26 二面 30min 通过

  1. 讲一讲你感觉最能体现你技术水平的我的项目
  2. 聊字节实习工作、我的项目、负载均衡器我的项目
  3. 通过这些我的项目 / 字节实习,你学到了什么?
  4. 集体的职业规划是怎么样的?
  5. 场景设计,单人 / 多人理解,如何做加解密能够做到服务器被攻陷也不会透露聊天记录,加解密的流程是怎么样的?
  6. 为什么想来大疆?有用过大疆的产品吗?
  7. 你能总结一下你集体的优缺点吗?
  8. 你的毛病有给你带来困扰和影响吗?
  9. 你实习的共事对你评估怎么样?
  10. 不思考在字节留用吗?
  11. 你的产品思维怎么样?通过什么事件可能体现?
  12. 你平时有什么喜好?程度如何?
  13. 反诘环节、业务介绍

8.29 三面 50min 通过

  1. 理解企业实习工作和业务
  2. 最近国家约谈互联网大厂和做出整改你怎么看?动机是什么?面对整改你们做了什么工作?
  3. 为什么是国家整改而不是企业被动去做?
  4. 你对将来的职业规划包含抉择是怎么样的?
  5. 你会因为什么去抉择一家公司?为什么抉择大疆?
  6. 你本人做的最称心的一个我的项目是什么?有什么特点和难点?
  7. 本人做的我的项目和企业我的项目的区别是什么?实习有什么播种?
  8. 你怎么对待大疆?和互联网企业不太一样,有什么特地的想法吗?
  9. 你也有提到有用过大疆的产品,感觉体验怎么样?有什么性能倡议点?… 探讨大疆产品和喜好
  10. 如果发了 offer 让你来?你感觉你须要提前做什么筹备?
  11. 你有遇到过比拟大的挫折和艰难吗,是怎么面对的?
  12. 你的人生目标是什么?最大的优缺点是什么?
  13. 有过让本人悔恨的决策吗?
  14. 字节和大疆都给你 offer 了你会怎么抉择呢?
  15. 反诘环节、企业文化价值观交换

Shopee

7.19 提前批口试 120min 通过

  1. Symbol 相干
  2. Proxy 相干
  3. instance of 相干
  4. %、rem、vh、px 相干
  5. liunx 建设新过程的命令
  6. 状态码 504 的含意
  7. 前端平安,SQL 注入、XSS 攻打、CSRF 攻打、HTTPS、CA 相干
  8. IP、子网掩码算播送地址
  9. 正则相干,选一个正则不能进行的操作
  10. 选一个会触发重绘、回流的情景
  11. 不给 cookie 设置无效工夫,它的生命周期是?
  12. visualbility:hidden、display:none 是否触发重绘回流
  13. 应用虚构 DOM 的益处
  14. CSRF 进攻计划
  15. 可能被 XSS 注入的标签
  16. position 定位类型
  17. CORS 解决跨域申请头设置 带 cookie
  18. 算法:

    1. 找出最初一个只呈现一个的字符
    2. ACM 的一道题 仓库拣货,二维数组标记几个点为货物,通过货物周围即为拣货胜利。从入口开始,须要转向几次能力拣完所有的货。
    3. 相交数组,找出两个数组反复的项

7.25 提前批一面 50min 通过

  1. 重绘重排及优化点
  2. CSS 定位形式有哪几种 别离有什么区别
  3. 虚构 DOM 的优缺点
  4. TCP 连贯可靠性
  5. TCP 是否有数据校验
  6. TCP 流量管制、拥塞管制
  7. Vue data 为什么是个函数
  8. 深拷贝、浅拷贝 为什么会有这种概念
  9. JS 根本类型、援用类型
  10. V8 垃圾回收形容
  11. 事件委托、事件代理
  12. 算法:括号匹配、二叉树后续遍历
  13. 反诘环节

8.1 提前批二面 54min 通过

  1. EventLoop,写输入和思路
setTimeout(() => {console.log("start");
​
  Promise.resolve().then(() => {console.log("Promise1");
    setTimeout(() => {console.log("setTimeout2");
    });
  });
​
  setTimeout(() => {console.log("setTimeout1");
    Promise.resolve().then(() => {console.log("promise2");
    });
  });
}, 0);
​
console.log("end");
  1. 闭包、块级作用域,写输入和思路
var result = [],
  a = 3;
var total = 0;
function foo(a) {
  var i = 0;
  for (; i < 3; i++) {result[i] = function () {
      total += i * a;
      console.log(total);
    };
  }
}
​
foo(1);
result[0]();
result[1]();
result[2]();
  1. 手撕防抖,反对立刻执行
  2. 前端性能优化,聊了动态资源上 cdn,HTTP 缓存,接口聚合,骨架屏 /loading,DNS 预解析,preload,prefetch,webpack 优化:Compress、Tenser、HMR、多线程打包、开启缓存、DLL
  3. 实现一个组件,有限滚动,要求刷新性能尽可能地好,聊了虚构列表固定大小和不固定大小别离怎么实现
  4. 聊实习我的项目、亮点、遇到问题、怎么解决
  5. ES6 – 最新版本有什么新个性
  6. Vite 理解吗,聊一聊,和 webpack 有什么区别,为什么比 webpack 快
  7. 反诘环节

8.4 提前批 HR 面 20min 通过

  1. 自我介绍
  2. 字节实习工作内容
  3. 做我的项目遇到什么问题,怎么解决的?
  4. 会因为什么抉择一个公司?业务?薪酬?大厂背景?
  5. 对什么业务比拟感兴趣呢?
  6. 用三个词形容本人
  7. 职业规划,有思考考研吗?
  8. 本身有什么优缺点?
  9. 手头还有什么 offer?
  10. 有什么趣味、喜好?

百度

8.19 提前批一面 80min 通过

  1. 介绍企业实习我的项目
  2. 我的项目并发量级这么大,是怎么接受高并发的?怎么更新版本?
  3. 前端层面怎么设计能够加重服务端压力,接受高并发?
  4. 介绍一下 HTTP 缓存
  5. CDN 有什么益处?原理呢?
  6. 离线包有理解过吗?
  7. 你的 safeRouter 是怎么封装的?怎么做的?
  8. VueRouter 的原理是什么?
  9. 集体我的项目的权限零碎是怎么设计的?如果更简单的权限零碎你会怎么设计?
  10. 封装一个通用的依据权限渲染不同内容的组件你会怎么设计?
  11. 浏览器的工夫循环机制形容一下?
  12. Node 事件循环和浏览器有什么区别?
  13. 遍历一个对象有什么模式?
  14. for in 有什么缺点?怎么防止?
  15. for of 能够遍历对象吗?怎么让它能遍历
  16. v-model 的原理
  17. 怎么实现多个地位绑定同一个 v -model?
  18. vue 组件传值有哪些形式?尽可能多地说
  19. 工程化理解过吗?Webpack 的 Loader 和 Plugin 有什么区别?
  20. Plugin 能够实现 Loader 的性能吗?
  21. 拆包有理解过吗?路由懒加载有理解过吗?讲一讲
  22. 讲一讲你理解的数据结构
  23. 链表的头插法、查问、有序插入工夫复杂度是多少?
  24. 二叉树的查问复杂度是多少?
  25. 快排的工夫复杂度是多少?
  26. 算法

    1. 数组去重

      1. set
      2. 手动
    2. 爬楼梯

      1. 迭代
      2. 递归
      3. 缓存 + 递归
  27. 反诘环节、业务介绍

8.21 提前批二面 80min 通过

  1. 聊开源我的项目
  2. 聊企业实习我的项目
  3. 我的项目有什么难点?亮点?
  4. 实习有什么播种?
  5. 实现一个 repeat 函数,第一个参数是字符串,第二个参数是字符串反复多少次后返回,例如 repeat(‘str’,2)返回 strstr

    1. 实现这个函数你要思考什么问题?
    2. 一个字符串的最大长度是多少?
    3. 除了问人,能够查文档等各种形式去查、写代码去验证,你会怎么做?(第二个问题)
    4. MDN 文档中文版和英文版有什么不一样吗?能够看一看
    5. 你当初写的是迭代的形式,你能够改成递归的形式吗?
    6. 你个别怎么对代码进行 debug?
    7. 你当初的工夫复杂度是多少?能够优化吗?
    8. ok,优化到 logn 了,logn 的迭代模式要怎么改呢?
  6. 反诘环节、业务理解

8.24 提前批三面 30min 通过

  1. 在字节转正了吗?
  2. 后续职业规划是怎么样的?思考考研吗?
  3. 聊字节实习我的项目
  4. 实习有哪些成长?
  5. 我看你学的是物联网,还取得了不少奖项和知识产权,为什么抉择做前端呢?
  6. 你会因为哪些因素抉择一家公司?
  7. 后续思考在深圳倒退吗?
  8. 算法设计

    1000 支疫苗,有一支变质了,能够通过试纸检测,反应时间须要一小时,如何在一小时用尽可能少的试纸找到变质的疫苗。一张试纸能够滴多支疫苗,一支疫苗也能够滴在多张试纸。

    1. 将疫苗变成 m n 矩阵,m n = 1000,m + n 尽量小,需 m + n 张(mn 对应行列)
    2. 将疫苗进行二进制编号,应用 10 张试纸,对应位为 1 则滴,不为 1 则不滴,通过变红的试纸反推编号。
  9. 反诘环节

滴滴

7.31 提前批一面 70min 通过

  1. 聊负载均衡器 实现、算法(集体我的项目)
  2. Node 过程间通信实现,其余过程间通信形式
  3. 实习我的项目介绍,业务了解,亮点
  4. Express 和 Koa 的区别,中间件的实现形式 compose
  5. 实现一个 compose
  6. compose 函数看代码写输入 带 try catch 和抛错
  7. 讲讲对 webpack 的了解
  8. vue2 和 vue3 的区别
  9. vue 组件传值 $attr
  10. Vue 的插槽有哪几种类型,别离有什么区别
  11. 手撕最长公共子串 LeetCode 1143 middle
  12. 手撕深拷贝
  13. 判断数据类型的办法
  14. 手撕公布订阅模式
  15. 反诘环节

7.31 提前批二面 70min 通过

  1. 尽可能多的写出 div 中 img 垂直程度居中的办法。要求至多有一种办法是应用 flex 布局。其中 div 宽高 300px,img 宽高 100px
<div>
  <img />
</div>
  1. 画一条 0.5px 的线
  2. 宏工作、微工作、EventLoop
  3. 看代码写输入
setTimeout(() => {console.log(100)
})
console.log(200)
Promise.resolve().then(() => {console.log(300)
})
  1. 尽可能多的写出数组去重的办法
  2. 写一个每隔一秒输入 0、1、2、3、4、5 的办法
  3. var const let 块级作用域
  4. 写出 console 的后果
var f = (function() {
  var c = "c";
  return {a: function() {return c;},
    b: function(d) {c = d;}
  }
})()
console.warn(f.a())
console.warn(f.c)
console.warn(f.b("d"))
console.warn(f.a())
  1. 闭包
  2. 任选一种排序办法进行实现
  3. 浏览器 url 从输出到显示出页面的流程(带缓存)
  4. 强缓存、协商缓存
  5. link 标签引入 css 会阻塞 dom 渲染嘛
  6. async 和 defer 的区别
  7. node EventLoop 和浏览器有什么区别
  8. 过程间通信 domain socket 具体实现流程
  9. 箭头函数和一般函数有什么区别
  10. 小程序的运行机制(双线程、JSB 相干)
  11. redis 怎么实现分布式锁
  12. 你认为本人的定位是怎么样的 有什么优缺点
  13. 你认为他人眼中的你是怎么样的
  14. 反诘环节

7.31 提前批三面 70min 通过

  1. 自我介绍喜好、专长、特点、亮点、集体定位
  2. 大学中的成长历程、怎么接触技术、学习和倒退历程
  3. 实习我的项目和做的事件
  4. 将来集体职业规划
  5. 聊负载均衡器我的项目(集体我的项目)
  6. 为什么会去做技术分享、目标、怎么选题(字节部门技术分享)
  7. 再让你做技术分享你会选什么题目
  8. 大学里最有成就感的事件,为什么?
  9. 简历上六个我的项目挨个聊
  10. 物联网工程业余和计算机的关系和区别
  11. 除了前端还有没有学过别的方向的技术
  12. 最善于的专业课是什么
  13. 你怎么给一个非专业的人介绍计算机网络
  14. 计算机网络为什么要分层
  15. 你的数据结构和算法怎么样 有没有刷题
  16. dp 理解吗 讲一讲
  17. 写道题吧 对象的 key 全副驼峰转下划线 要求递归 可限度深度 dfs 和 bfs 别离怎么实现
  18. 反诘环节

美团

8.16 一面 70min 通过

  1. 看代码写输入
var name = "windowsName";
var a = {
  name:"Cherry",
  
  func1:function(){console.log(this.name);
  }
  
  func2:function(){setTimeout(function(){this.func1();
    }, 100)
  }
}
a.func2();
  1. 说说对闭包的了解,有哪些利用场景
  2. 实现一个办法
f(a) -> [a]
f(b) -> [a, b]
f(c) -> [a, b, c]
  1. 看代码写输入
const list = [1, 2, 3];
const square = num => {return new Promise((resolve, reject) => {setTimeout(() => {resolve(num * num);
    }, 3000)
  })
}
​
function test(){
  list.forEach(async x=>{const res = await square(x);
    console.log(res);
  })
}
​
test();
  1. new 的过程中产生了什么
  2. 说一下 Promise 的利用
  3. async await 是什么的语法糖
  4. Promise 有哪些状态,可逆吗?
  5. 讲讲 Vue 的双向绑定原理
  6. 数组的双向绑定相干,Vue2 间接更新数组某项会进行视图更新吗?
  7. 理解跨域吗?讲一讲有哪几种形式
  8. TCP 三次握手四次挥手,为什么三次和四次,如何保障可靠性
  9. 手写快排
  10. 跨端形式交换
  11. 反诘环节

8.24 二面 45min 通过

  1. 能够提前过去实习吗?
  2. 字节留用状况?
  3. 更看重公司的哪些因素?
  4. 有思考考研吗?
  5. 聊字节实习我的项目
  6. 介绍一下你的 HTTP 缓存文章写了哪些内容
  7. ETag 是什么?常见的算法有哪些?
  8. 负载均衡器我的项目是怎么实现的?
  9. 一致性哈希算法原理是?
  10. 最有成就感的我的项目是哪一个?
  11. 介绍一下虚构 DOM,有什么优缺点?
  12. 虚构 DOM 的底层 patch、diff 有理解过吗?
  13. Vue 的 diff 算法,Vue2 和 Vue3 别离是怎么样的?有什么区别?
  14. Vue 的双向绑定原理是怎么实现的?
  15. 算法

    1. 计算一个数组最长间断自然数个数,要求值间断,地位没有要求
    输出 {100,4,200,1,3,2}
    输入 4
    示例 2 输出 {200,201,202,100,4,200,1,3,2,204,203}
    输入 5
    1. 看代码说输入,会报错吗
    let A = () => {
      this.a = 100;
      return {a: 200}
    }
    A.a = 300
    A.__proto__.a = 500
    A.prototype = {a: 600}
    a = new A()
    console.log(a.a)
  16. 箭头函数和一般函数有什么区别?
  17. prototype 和proto 有什么区别?
  18. 能说一下 HTTPS 握手、加解密流程吗?
  19. 让你最有播种的专业课是什么?
  20. 你感觉本人有什么长处和毛病?
  21. 除了前端还学习过什么别的技术吗?
  22. 你的知识产权(发明专利、实用新型专利、软件著作权)是怎么产生的?
  23. 反诘环节

9.1 HR 面 20min 通过

  1. 你的专利和软件著作权是通过什么机会去产出的?第几作者呢?
  2. 看你我的项目教训很丰盛
  3. 你在字节的工作感触如何?压力大吗?
  4. 字节是否会给你留用 offer?
  5. 你还有投递其余那些公司?
  6. 你会因为什么抉择一家公司?
  7. 你感觉你做的最有成就感的我的项目是哪个?
  8. 你感觉你做的最难的我的项目是哪一个?难点在哪里?
  9. 你的职业规划是怎么样的?
  10. 你有哪些长处和劣势?
  11. 反诘环节

拼多多

7.25 提前批口试 90min(30min 实现)通过

  1. 递归实现和非递归实现哪个更快
  2. TCP 和 UDP 的区别是
  3. 实操 HTML CSS
  4. 实现一个异步加载 js 函数返回一个 promise,胜利 resolve,失败 /5s 超时 reject
  5. 手写 Promise.resolve 和 Promise.reject

8.3 提前批一面 55min 通过

  1. 手撕括号匹配
  2. 实现一个 promiseTimeout 办法,接管两个参数,第一个参数为 promise,第二个参数为 number 类型;该办法的作用为

    1. 若 promise 在第二个参数给定的工夫内处于 pending 状态,则返回一个 rejected 的 promise,其 reason 为 new Error(‘promise timeout’)
    2. 若 promise 在第二个参数给定的工夫内处于非 pending 状态,则返回该 promise
  3. 浏览器工作循环,看代码写输入
async function async1() {console.log("async1 start");
  await async2();
  console.log("async1 end");
}
​
async function async2() {console.log("async2");
}
​
setTimeout(() => {console.log("setTimeout");
}, 0);
​
async1();
​
new Promise((resolve) => {console.log("promise1");
  resolve();})
  .then(() => {console.log("promise2");
    return new Promise((resolve) => {resolve();
    });
  })
  .then((result) => {console.log("promise3");
  });
​
console.log("script end");
  1. 看代码写输入
// a.js
console.log('a finish');
// b.js
console.log('b finish');
​
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script type="text/javascript" src="./a.js" defer="defer"></script>
    <script type="text/javascript" src="./b.js"></script>
    <script>
      console.log("event begin");
      document.addEventListener("DOMContentLoaded", () => {console.log("DOMContentLoaded finish");
      });
      window.addEventListener("load", () => {console.log("load finish");
      });
    </script>
    <title>Document</title>
  </head>
  <body>
    <div id="main" class="bg">
      <script>
        let i = 0;
        while (i < 1000000) {i++;}
        console.log("compute finished");
      </script>
    </div>
  </body>
</html>
​
  1. Vue 双向绑定实现原理
  2. Vue.$nextTick 实现原理,是宏工作还是微工作
  3. Vue scoped 实现原理
  4. 跨域的实现形式
  5. 简略申请简单申请 Option 预申请
  6. 从 url 到页面渲染间产生了什么
  7. 重绘、回流,优化形式
  8. HTTP 缓存 强缓存、协商缓存
  9. 手写 Reac Hookst 计数器(自增),闭包陷阱
  10. 有限滚动场景,虚构列表设计
  11. 单点登录
  12. 前端平安 CSRF

8.7 提前批二面 50min 通过

  1. 你感觉 Vue 是个怎么样的框架
  2. Vue DSL 是个什么样的模式
  3. 什么是 MVVM?
  4. MVVM 三层别离做了什么事件
  5. Vue 中组件是什么概念?什么场景你会去封装一个组件
  6. Vue 组件数据通信有什么形式?别离有什么区别
  7. Vuex 异步和同步操作别离用什么,区别在哪里?
  8. 算法题:给出一个数组中有多个对象,对象的属性有用户的 id 和操作的工夫,给出了工夫的起止,输入一个数组,数组中的对象为操作次数和雷同操作次数的用户数,按操作次数从大到小排列
  9. for in 和 for of 的区别
  10. const、let 和 var 的区别
  11. 什么是块级作用域
  12. 垃圾回收做了什么事件
  13. 如何让函数作用域外的拜访函数内的变量
  14. 什么是闭包,手写个闭包
  15. this 在 JS 中是什么
  16. 箭头函数和一般函数有什么区别
  17. 怎么扭转函数的 this 指向
  18. 说一下 flex 布局,有哪些常见属性,别离用来干吗
  19. 简略写个 flex 布局
  20. CSS 有哪些单位 有什么区别
  21. rem 有什么应用场景
  22. 浏览器拿到 document 后浏览器的渲染流程
  23. 什么状况会阻塞渲染,怎么优化
  24. async 和 defer 有什么区别
  25. 怎么手动测量渲染工夫

8.16 提前批三面 70min 通过

  1. 算法
/*
请将第二排天上数组,使得第二排每一位数字是对应的第一排数字的次数
0 1 2 3 4 5 6 7 8 9 
- - - - - - - - - -
​
例如
0 1 2 3
1 2 1 0
*/
  1. 实现一个 HardMan
HardMan("jack")输入
i am jack
HardMan("jack").learn("computer")输入:i am jack
Learning computer
HardMan("jack").rest(10).learn("computer")输入
i am jack 期待 10s
Start learning after 10 seconds
Learning computer
HardMan("jack").restFirst(5).learn("computer")输入
期待 5s
Start learning after 5 seconds
i am jack
Learning chinese
  1. 介绍我的项目,难点、亮点、问题、怎么解决
  2. HTTP 强缓存、协商缓存
  3. localstorge 和 HTTP 缓存有啥区别,你会怎么抉择缓存计划
  4. 缓存地位在哪儿?策略?
  5. 反诘环节

8.23 HR 面 20min 通过

  1. 自我介绍
  2. 职业规划
  3. 后续在哪个城市倒退
  4. 爸妈批准吗?有没有女朋友
  5. 会因为什么因素抉择一家公司
  6. 有什么感兴趣的业务方向
  7. 冀望薪资是什么程度?
  8. 为什么抉择做前端开发?
  9. 能够过去实习嘛?
  10. 工作强度是否理解过?是否能承受?

正文完
 0