共计 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 通过
- 实习工作次要负责什么
- 小程序开发中遇到过什么问题?怎么解决的
- 实习我的项目的难点、亮点
- 字节小程序和微信小程序有什么区别
- Uni-app 框架做了什么工作、解决?
- 用 Uni-app 开发的过程中遇到过什么问题?怎么解决的?
- 从输出网址到整个渲染过程形容
- 除了 HTTP 缓存还有什么缓存形式?
- HTTP 缓存、localstorge、sessionstorge、cookie、indexDB 这些形式实现缓存有什么区别、特点
- 做过 CDN 相干的工作吗?
- CDN 有什么益处呢?
- 聊参加的开源我的项目技术栈、云开发
- 过程和线程的区别?
- 过程间通信形式有哪些?
- 有用过 Mysql?解说一下什么是事务?
- 二叉树有哪些遍历形式?哪些属于 DFS?
- 有用过预处理器吗?有什么特点?
- 有思考过多主题款式吗?怎么实现?
- Node 用过吗?用过哪些相干框架?做过哪些货色?
- 手撕 jsonStringfy
- 实现 JSON.parse 的思路?除了 eval 和 new Function(AST、编译原理)
- 跨端形式有哪几种解决方案?
8.18 WXG 游戏二面 40min 通过
- 为什么抉择做前端?
- 前端和其余方向相比,比方机器学习,有什么区别和特点
- 怎么样才算前端做得比拟好?
- 有做过性能优化吗?怎么做得?
- 小程序是怎么跑在客户端的?
- 双线程架构有什么益处呢?
- 如果不应用双线程架构会怎么样?在技术指标上会有什么变动?
- 体验卡顿问题?一帧大略多少毫秒?
- JS 和渲染,你感觉一帧各占多少毫秒比拟适合?
- 说一说各种跨端的形式?JSB 是怎么进行桥接的?
- 除了 JSB 还有什么连贯形式吗?
- 做过性能优化,有哪些操作?首屏渲染优化了多少秒?达到目标了吗?达到你本人的指标了吗?
- 各个操作别离优化了多少毫秒?
- CDN 的原理?为什么资源加载快?
- 如果你是一个 CDN 服务商,你会怎么设计你的 CDN 来吸引开发者。
- 什么状况下会存在跨域问题?
- 你在字节感触怎么样?为什么会抉择来微信?
- 你感觉首屏渲染多少秒是一个合格的规范?
- 之前有投递过腾讯吗?为什么没有来?
- 前面能够过去实习吗?实习多久?后续在哪个城市倒退?
- 反诘环节、业务介绍
8.30 WXG 游戏三面 30min 通过
- 实习多久了?为什么投递腾讯?
- 聊实习业务、技术难点、亮点,实习对集体的晋升
- 小程序怎么调用客户端能力?JSBridge 初始化须要多少工夫?
- Faas 和一般的后端工程服务有什么区别和特点?
- 原子服务之间的调用会有什么问题吗?
- 你本人起一个 Node 后端我的项目?须要做什么操作能让它更好更稳固地运行呢?
- 算法题 LeetCode middle 122 交易股票的最佳时机 II
- 反诘环节、新人造就、业务理解
9.7 WXG 游戏 hc 有余流程完结
9.14 TEG 腾讯大数据(数平)一面 40min
- 字节实习我的项目介绍、难点、亮点、挑战
- 企业我的项目性能如何?FCP、FMP 如何? 是否进行了分包加载?包体积大小如何?
- Vue 路由模式有几种?有什么区别?
- Vue 最大的长处和毛病是什么?
- 有实战过 React 吗?和 Vue 比照有什么区别和优缺点?
- Class 组件和函数组件有什么区别?
- React 组件间数据传递形式
- 用过打包工具吗?介绍一下 Webpack
- 用过哪些 Loader 和 Plugin?
- Plugin 的原理和编写思路是怎么样的?
- 前端异样和性能监控怎么做?让你设计一个异样和性能监控平台你会怎么设计?
- LocalStorge 和 cookie 有什么区别?
- ES6 实现排序有哪几种形式?
- 理解 Set 吗?介绍一下
- 解决跨域的形式有哪几种?别离是什么原理和实现模式?
- 有用过代理工具 / 抓包吗?
- 集体职业规划
- 用过 Node 吗?有哪些利用场景?
- 字节转正了吗?会因为什么抉择一家公司?思考哪些因素?
- 反诘环节、业务介绍
9.15 TEG 腾讯大数据(数平)二面 60min 通过
- 物联网工程和计算机是什么关系?
- 大学学习了哪些课程?计算机系列课程学过吗?
- 简历上各个我的项目挨个聊
- 数组和链表有什么区别和特点
- 链表有多少种类型?
- 双向链表的利用场景有哪些?
-
一道贪婪算法题
有 1、5、10、50、100 面值硬币,输出一个长度为 5 的数组,示意有多少枚对应面值的硬币,再输出一个须要凑齐的数值,输入起码须要多少枚
- 常见的排序算法有哪些?
- 快排的实现思路是?工夫复杂度是?冒泡呢?
- 有用过哪些设计模式?介绍一下
- 罕用 Vue 的哪个版本?nextTick 是怎么实现的?什么原理?晓得 process.nextTick 吗?
- Vue 异步更新介绍一下
- 聊浏览器执行机制、事件循环、多线程架构
- Vue 怎么实现数据双向绑定和视图更新
- 有用过 ts 吗?有什么益处和特点?
- 聊字节实习我的项目
- 聊小程序 WebView 预加载、热更新机制
- 反诘环节、业务介绍
9.23 TEG 腾讯大数据(数平)GM 三面 20min 通过
- 本科期间产出了很多论文和知识产权?是很早就开始做了吗?
- 你是一个学霸吗?还是实际能力比拟强?
- 聊字节实习我的项目和工作
- 聊职业规划、集体倒退
- 为什么想转全栈?
- 去字节实习的目标是什么?
- 字节如何评估你的实习工作?
- 你如何做你的述职问难?
- 你如何思考你的校招去向,会因为哪些因素抉择一家公司?目前更偏向哪家公司?说说你的想法
- 你感觉腾讯和字节有什么不同?
- 反诘环节
9.26 TEG 腾讯大数据(数平)HR 面 20min 通过
- 为什么不思考考研?
- 介绍一下取得国一等奖的我的项目和发明专利
- 介绍一下开源我的项目
- 你感觉字节是一家什么样的公司?
- 你感觉腾讯是一家什么样的公司?
- 你感觉 TEG(技术工程事业群)的价值怎么体现?
- 你感觉退出腾讯 TEG 工作有什么挑战
- 为什么想转全栈?
- 手里还有其余 offer 吗?怎么思考和抉择
- 哪里人?后续在哪个城市倒退?
- 有无亲属在腾讯
- 反诘环节
阿里
8.13 淘系一面 60min 通过
一面老板间接上了我是没想到的
- 为什么想来阿里?
- 聊一下你感觉做得比拟好的我的项目,有什么难点和亮点?
-
聊负载均衡器我的项目
- Node 过程间通信形式是怎么实现的?
- Node 多过程架构是怎么样的?怎么监听同一个端口
- 一致性哈希算法的实现原理是?
- 最小连接数算法的实现形式是?
- 介绍一下 ARP 协定的作用
- 你的负载均衡器有用到 ARP 利用吗?怎么利用?
- 聊企业我的项目亮点
- 讲讲 Faas 的了解,优缺点
- 小程序的技术架构原理是怎么样的?
- 小程序为什么要应用双线程 +JSB 的架构?
- Vue3 的 hooks 原理?
- Vue3 有哪些 hooks API?
- 讲一讲 Webpack 的原理
- 反诘环节
9.7 淘系 拖了一个月告知 hc 有余 …
华为
10.16 一面 60min 通过
-
算法题
碰撞检测算法,给定一个数组示意一系列行星。对于数组的每一个元素,其绝对值示意行星的大小,正负示意行星挪动的方向(正示意向右挪动,负示意向左挪动)找出碰撞后剩下的所有行星。碰撞规定:两个行星互相碰撞,较小的行星会爆炸。如果两颗行星大小雷同,则两颗行星都会爆炸。两颗挪动方向雷同的行星永远不会产生碰撞
用例:
[5, 10, -5] => [5,10]
[8, -8] => []
[10, 2, -5] => [10]
[-2, -1, 1, 2] => [-2, -1, 1, 2]
- Vue 申明周期有哪些
- 讲一讲什么是 MVC
- Vue 和 React 有什么区别
- Vuex 有哪些应用场景?为什么应用?Vuex 的实现原理是?
- Vue 的路由模式有哪些?区别和实现原理是?
- 物联网场景 Web 和惯例 Web 场景有什么区别?
- HTTPS 加密原理是?
- 讲讲你做的负载均衡器
- 小程序和 h5 有啥区别?
- Uni-app 的转译原理介绍一下
- 反诘环节、业务介绍
10.16 二面 45min 通过
-
算法题
给定一个数组,外面有 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
- 介绍知识产权(发明专利、实用新型专利、软件著作权),如何产出,团队形成和集体角色。
- 介绍集体国奖我的项目
- 大学四年的布局、经验和职业规划
- 实习过程中遇到的技术难点、亮点
- 反诘环节、业务介绍
10.24 三面 40min 通过
- 思考留在字节吗?从哪些方面思考抉择一家公司?
- 讲一讲你是怎么学习前端开发的?遇到过哪些难点?怎么解决?学习周期多久?
- 聊字节实习我的项目、工作、产出
- 实习工作单干过程中有遇到什么问题吗?怎么解决这些问题?
- 单干过程中的沟通工夫占比多少?
- 实习和学业怎么均衡的?
- 职业规划是怎么样的?
- 动向城市
- 反诘环节
大疆
8.1 口试 90min(60min 实现)通过
3 单选
- 以下判断单链表有环办法谬误的是 暴力穷举、找雷同尾结点、哈希缓存、快慢指针找交点
- 依据前序和中序选后续遍历的后果
- JavaScript 解释器运行到什么阶段能够判断出不须要运行 func2 语法解析、词法解析、语义剖析、生成字节码
// 已知
//b.js 蕴含如下代码
import {func1} from './a'
//a.js 蕴含如下代码
export function func1(){}
export function func2(){}
6 多选
- 空间复杂度为 O(1)的算法有 归并排序、堆排序、冒泡排序、疾速排序
-
对于 HTTP 1.0/1.1/2.0 说法正确的事
- HTTP1.0 每次申请须要建设一个 TCP 连贯
- HTTP/1.1 反对多路复用
- HTTP/2.0 反对二进制解析
- HTTP/2.0 反对服务端推送
-
Chrome 采纳了多过程架构,创立大量 tab 时会启动独立的工作过程,以下对于线程、过程比照形容正确的是
- 过程安全性更高,tab 解体不会相互影响
- 过程启动老本更低,能够疾速创立 tab
- 过程间通信效率更高,更容易反对插件化
- 过程治理更容易,tab 独立渲染更快。
-
对于 JS 原型链形容正确的是
- 任何一个函数都有 prototype 属性
- 任何一个非 null 对象都有 proto 属性,等同于 prototype
- 原型链属性查找优先级为:实例**proto___ > 实例自身
- 严格模式中,全局作用域 this 为 undefined
-
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
-
对于 Promise、async、await 形容正确的是
- Promise 用于解决回调嵌套过深的问题
- await 能够以”同步“的形式实现异步的逻辑
- Promise rejected 状态能够变为 pending 状态
- Promise 执行过程中能够勾销
5 问答
-
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);
- 简述浏览器的垃圾回收机制
- 介绍 Vue 的双向绑定实现原理及流程
-
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();}
- 实现一个搜索器,输出一个二叉树的根节点,调用搜索器的 next()办法,将返回二叉树中下一个最小的数;调用搜索器的 hasNext 办法,将返回是否存在下一个数。二叉树节点是无需整数
附加题:
能不能给非可视化方向的同学一点机会 …
- (可视化方向附加题)简述 WebGL 渲染管线
- (可视化方向附加题)简述你理解的 3D 场景治理数据结构及其实现原理
- (可视化方向附加题)在 WebGL 3D 场景中,要实现物体暗影成果,请简述实现原理。假如场景区域很大,要如何优化暗影成果。
8.19 一面 60min 通过
- 为什么抉择来大疆?不留在字节吗?
- 你会因为什么因素抉择一家公司?
- 有其余公司的 offer 吗?
- 介绍一下 V8 垃圾回收机制?
- 晓得 V8 垃圾回收机制比照编码有什么益处?
- 什么状况会呈现内存透露?
- 你编码有呈现过内存透露或者有排查过吗?
- 怎么避免内存透露?排查解决治标不治本
- 用的什么技术栈?有用过 TS 吗?
- 介绍一下你的实习我的项目业务
- 我的项目有什么难点?亮点?
- 多主题的实现你有调研过其余的解决方案吗?这个需要的背景是什么?为什么不调研别的计划?为什么不和组内同时探讨?为什么没去看 antd 的源码实现?
- 你的我的项目外面有波及到权限等级零碎的设计吗?
- 让你设计一个省市区的级联选择器你会思考哪些点?
- 说说你的开源我的项目?
- 有用过哪些 ES6 新个性,都说一说
- 箭头函数 this 指向哪里?在不同的中央执行 this 执行会指向不同吗?
- const 和 let 带来了什益处?
- 除了块级作用域还有什么作用域?
- 过渡应用闭包会呈现什么问题?
- promise 呈现以前是怎么解决异步编程的?promise 有什么益处?编程思路产生了什么转变?会呈现什么问题?
- 从哪里看到的大疆招聘信息?理解大疆是怎么样的一个企业?
- 你感觉来大疆做前端你会做哪些工作?
- ↑你感觉你的形容可能吸引人吗?
- 业务介绍、反诘环节
8.26 二面 30min 通过
- 讲一讲你感觉最能体现你技术水平的我的项目
- 聊字节实习工作、我的项目、负载均衡器我的项目
- 通过这些我的项目 / 字节实习,你学到了什么?
- 集体的职业规划是怎么样的?
- 场景设计,单人 / 多人理解,如何做加解密能够做到服务器被攻陷也不会透露聊天记录,加解密的流程是怎么样的?
- 为什么想来大疆?有用过大疆的产品吗?
- 你能总结一下你集体的优缺点吗?
- 你的毛病有给你带来困扰和影响吗?
- 你实习的共事对你评估怎么样?
- 不思考在字节留用吗?
- 你的产品思维怎么样?通过什么事件可能体现?
- 你平时有什么喜好?程度如何?
- 反诘环节、业务介绍
8.29 三面 50min 通过
- 理解企业实习工作和业务
- 最近国家约谈互联网大厂和做出整改你怎么看?动机是什么?面对整改你们做了什么工作?
- 为什么是国家整改而不是企业被动去做?
- 你对将来的职业规划包含抉择是怎么样的?
- 你会因为什么去抉择一家公司?为什么抉择大疆?
- 你本人做的最称心的一个我的项目是什么?有什么特点和难点?
- 本人做的我的项目和企业我的项目的区别是什么?实习有什么播种?
- 你怎么对待大疆?和互联网企业不太一样,有什么特地的想法吗?
- 你也有提到有用过大疆的产品,感觉体验怎么样?有什么性能倡议点?… 探讨大疆产品和喜好
- 如果发了 offer 让你来?你感觉你须要提前做什么筹备?
- 你有遇到过比拟大的挫折和艰难吗,是怎么面对的?
- 你的人生目标是什么?最大的优缺点是什么?
- 有过让本人悔恨的决策吗?
- 字节和大疆都给你 offer 了你会怎么抉择呢?
- 反诘环节、企业文化价值观交换
Shopee
7.19 提前批口试 120min 通过
- Symbol 相干
- Proxy 相干
- instance of 相干
- %、rem、vh、px 相干
- liunx 建设新过程的命令
- 状态码 504 的含意
- 前端平安,SQL 注入、XSS 攻打、CSRF 攻打、HTTPS、CA 相干
- IP、子网掩码算播送地址
- 正则相干,选一个正则不能进行的操作
- 选一个会触发重绘、回流的情景
- 不给 cookie 设置无效工夫,它的生命周期是?
- visualbility:hidden、display:none 是否触发重绘回流
- 应用虚构 DOM 的益处
- CSRF 进攻计划
- 可能被 XSS 注入的标签
- position 定位类型
- CORS 解决跨域申请头设置 带 cookie
-
算法:
- 找出最初一个只呈现一个的字符
- ACM 的一道题 仓库拣货,二维数组标记几个点为货物,通过货物周围即为拣货胜利。从入口开始,须要转向几次能力拣完所有的货。
- 相交数组,找出两个数组反复的项
7.25 提前批一面 50min 通过
- 重绘重排及优化点
- CSS 定位形式有哪几种 别离有什么区别
- 虚构 DOM 的优缺点
- TCP 连贯可靠性
- TCP 是否有数据校验
- TCP 流量管制、拥塞管制
- Vue data 为什么是个函数
- 深拷贝、浅拷贝 为什么会有这种概念
- JS 根本类型、援用类型
- V8 垃圾回收形容
- 事件委托、事件代理
- 算法:括号匹配、二叉树后续遍历
- 反诘环节
8.1 提前批二面 54min 通过
- 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");
- 闭包、块级作用域,写输入和思路
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]();
- 手撕防抖,反对立刻执行
- 前端性能优化,聊了动态资源上 cdn,HTTP 缓存,接口聚合,骨架屏 /loading,DNS 预解析,preload,prefetch,webpack 优化:Compress、Tenser、HMR、多线程打包、开启缓存、DLL
- 实现一个组件,有限滚动,要求刷新性能尽可能地好,聊了虚构列表固定大小和不固定大小别离怎么实现
- 聊实习我的项目、亮点、遇到问题、怎么解决
- ES6 – 最新版本有什么新个性
- Vite 理解吗,聊一聊,和 webpack 有什么区别,为什么比 webpack 快
- 反诘环节
8.4 提前批 HR 面 20min 通过
- 自我介绍
- 字节实习工作内容
- 做我的项目遇到什么问题,怎么解决的?
- 会因为什么抉择一个公司?业务?薪酬?大厂背景?
- 对什么业务比拟感兴趣呢?
- 用三个词形容本人
- 职业规划,有思考考研吗?
- 本身有什么优缺点?
- 手头还有什么 offer?
- 有什么趣味、喜好?
百度
8.19 提前批一面 80min 通过
- 介绍企业实习我的项目
- 我的项目并发量级这么大,是怎么接受高并发的?怎么更新版本?
- 前端层面怎么设计能够加重服务端压力,接受高并发?
- 介绍一下 HTTP 缓存
- CDN 有什么益处?原理呢?
- 离线包有理解过吗?
- 你的 safeRouter 是怎么封装的?怎么做的?
- VueRouter 的原理是什么?
- 集体我的项目的权限零碎是怎么设计的?如果更简单的权限零碎你会怎么设计?
- 封装一个通用的依据权限渲染不同内容的组件你会怎么设计?
- 浏览器的工夫循环机制形容一下?
- Node 事件循环和浏览器有什么区别?
- 遍历一个对象有什么模式?
- for in 有什么缺点?怎么防止?
- for of 能够遍历对象吗?怎么让它能遍历
- v-model 的原理
- 怎么实现多个地位绑定同一个 v -model?
- vue 组件传值有哪些形式?尽可能多地说
- 工程化理解过吗?Webpack 的 Loader 和 Plugin 有什么区别?
- Plugin 能够实现 Loader 的性能吗?
- 拆包有理解过吗?路由懒加载有理解过吗?讲一讲
- 讲一讲你理解的数据结构
- 链表的头插法、查问、有序插入工夫复杂度是多少?
- 二叉树的查问复杂度是多少?
- 快排的工夫复杂度是多少?
-
算法
-
数组去重
- set
- 手动
-
爬楼梯
- 迭代
- 递归
- 缓存 + 递归
-
- 反诘环节、业务介绍
8.21 提前批二面 80min 通过
- 聊开源我的项目
- 聊企业实习我的项目
- 我的项目有什么难点?亮点?
- 实习有什么播种?
-
实现一个 repeat 函数,第一个参数是字符串,第二个参数是字符串反复多少次后返回,例如 repeat(‘str’,2)返回 strstr
- 实现这个函数你要思考什么问题?
- 一个字符串的最大长度是多少?
- 除了问人,能够查文档等各种形式去查、写代码去验证,你会怎么做?(第二个问题)
- MDN 文档中文版和英文版有什么不一样吗?能够看一看
- 你当初写的是迭代的形式,你能够改成递归的形式吗?
- 你个别怎么对代码进行 debug?
- 你当初的工夫复杂度是多少?能够优化吗?
- ok,优化到 logn 了,logn 的迭代模式要怎么改呢?
- 反诘环节、业务理解
8.24 提前批三面 30min 通过
- 在字节转正了吗?
- 后续职业规划是怎么样的?思考考研吗?
- 聊字节实习我的项目
- 实习有哪些成长?
- 我看你学的是物联网,还取得了不少奖项和知识产权,为什么抉择做前端呢?
- 你会因为哪些因素抉择一家公司?
- 后续思考在深圳倒退吗?
-
算法设计
1000 支疫苗,有一支变质了,能够通过试纸检测,反应时间须要一小时,如何在一小时用尽可能少的试纸找到变质的疫苗。一张试纸能够滴多支疫苗,一支疫苗也能够滴在多张试纸。
- 将疫苗变成 m n 矩阵,m n = 1000,m + n 尽量小,需 m + n 张(mn 对应行列)
- 将疫苗进行二进制编号,应用 10 张试纸,对应位为 1 则滴,不为 1 则不滴,通过变红的试纸反推编号。
- 反诘环节
滴滴
7.31 提前批一面 70min 通过
- 聊负载均衡器 实现、算法(集体我的项目)
- Node 过程间通信实现,其余过程间通信形式
- 实习我的项目介绍,业务了解,亮点
- Express 和 Koa 的区别,中间件的实现形式 compose
- 实现一个 compose
- compose 函数看代码写输入 带 try catch 和抛错
- 讲讲对 webpack 的了解
- vue2 和 vue3 的区别
- vue 组件传值 $attr
- Vue 的插槽有哪几种类型,别离有什么区别
- 手撕最长公共子串 LeetCode 1143 middle
- 手撕深拷贝
- 判断数据类型的办法
- 手撕公布订阅模式
- 反诘环节
7.31 提前批二面 70min 通过
- 尽可能多的写出 div 中 img 垂直程度居中的办法。要求至多有一种办法是应用 flex 布局。其中 div 宽高 300px,img 宽高 100px
<div>
<img />
</div>
- 画一条 0.5px 的线
- 宏工作、微工作、EventLoop
- 看代码写输入
setTimeout(() => {console.log(100)
})
console.log(200)
Promise.resolve().then(() => {console.log(300)
})
- 尽可能多的写出数组去重的办法
- 写一个每隔一秒输入 0、1、2、3、4、5 的办法
- var const let 块级作用域
- 写出 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())
- 闭包
- 任选一种排序办法进行实现
- 浏览器 url 从输出到显示出页面的流程(带缓存)
- 强缓存、协商缓存
- link 标签引入 css 会阻塞 dom 渲染嘛
- async 和 defer 的区别
- node EventLoop 和浏览器有什么区别
- 过程间通信 domain socket 具体实现流程
- 箭头函数和一般函数有什么区别
- 小程序的运行机制(双线程、JSB 相干)
- redis 怎么实现分布式锁
- 你认为本人的定位是怎么样的 有什么优缺点
- 你认为他人眼中的你是怎么样的
- 反诘环节
7.31 提前批三面 70min 通过
- 自我介绍喜好、专长、特点、亮点、集体定位
- 大学中的成长历程、怎么接触技术、学习和倒退历程
- 实习我的项目和做的事件
- 将来集体职业规划
- 聊负载均衡器我的项目(集体我的项目)
- 为什么会去做技术分享、目标、怎么选题(字节部门技术分享)
- 再让你做技术分享你会选什么题目
- 大学里最有成就感的事件,为什么?
- 简历上六个我的项目挨个聊
- 物联网工程业余和计算机的关系和区别
- 除了前端还有没有学过别的方向的技术
- 最善于的专业课是什么
- 你怎么给一个非专业的人介绍计算机网络
- 计算机网络为什么要分层
- 你的数据结构和算法怎么样 有没有刷题
- dp 理解吗 讲一讲
- 写道题吧 对象的 key 全副驼峰转下划线 要求递归 可限度深度 dfs 和 bfs 别离怎么实现
- 反诘环节
美团
8.16 一面 70min 通过
- 看代码写输入
var name = "windowsName";
var a = {
name:"Cherry",
func1:function(){console.log(this.name);
}
func2:function(){setTimeout(function(){this.func1();
}, 100)
}
}
a.func2();
- 说说对闭包的了解,有哪些利用场景
- 实现一个办法
f(a) -> [a]
f(b) -> [a, b]
f(c) -> [a, b, c]
- 看代码写输入
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();
- new 的过程中产生了什么
- 说一下 Promise 的利用
- async await 是什么的语法糖
- Promise 有哪些状态,可逆吗?
- 讲讲 Vue 的双向绑定原理
- 数组的双向绑定相干,Vue2 间接更新数组某项会进行视图更新吗?
- 理解跨域吗?讲一讲有哪几种形式
- TCP 三次握手四次挥手,为什么三次和四次,如何保障可靠性
- 手写快排
- 跨端形式交换
- 反诘环节
8.24 二面 45min 通过
- 能够提前过去实习吗?
- 字节留用状况?
- 更看重公司的哪些因素?
- 有思考考研吗?
- 聊字节实习我的项目
- 介绍一下你的 HTTP 缓存文章写了哪些内容
- ETag 是什么?常见的算法有哪些?
- 负载均衡器我的项目是怎么实现的?
- 一致性哈希算法原理是?
- 最有成就感的我的项目是哪一个?
- 介绍一下虚构 DOM,有什么优缺点?
- 虚构 DOM 的底层 patch、diff 有理解过吗?
- Vue 的 diff 算法,Vue2 和 Vue3 别离是怎么样的?有什么区别?
- Vue 的双向绑定原理是怎么实现的?
-
算法
- 计算一个数组最长间断自然数个数,要求值间断,地位没有要求
输出 {100,4,200,1,3,2} 输入 4 示例 2 输出 {200,201,202,100,4,200,1,3,2,204,203} 输入 5
- 看代码说输入,会报错吗
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)
- 箭头函数和一般函数有什么区别?
- prototype 和proto 有什么区别?
- 能说一下 HTTPS 握手、加解密流程吗?
- 让你最有播种的专业课是什么?
- 你感觉本人有什么长处和毛病?
- 除了前端还学习过什么别的技术吗?
- 你的知识产权(发明专利、实用新型专利、软件著作权)是怎么产生的?
- 反诘环节
9.1 HR 面 20min 通过
- 你的专利和软件著作权是通过什么机会去产出的?第几作者呢?
- 看你我的项目教训很丰盛
- 你在字节的工作感触如何?压力大吗?
- 字节是否会给你留用 offer?
- 你还有投递其余那些公司?
- 你会因为什么抉择一家公司?
- 你感觉你做的最有成就感的我的项目是哪个?
- 你感觉你做的最难的我的项目是哪一个?难点在哪里?
- 你的职业规划是怎么样的?
- 你有哪些长处和劣势?
- 反诘环节
拼多多
7.25 提前批口试 90min(30min 实现)通过
- 递归实现和非递归实现哪个更快
- TCP 和 UDP 的区别是
- 实操 HTML CSS
- 实现一个异步加载 js 函数返回一个 promise,胜利 resolve,失败 /5s 超时 reject
- 手写 Promise.resolve 和 Promise.reject
8.3 提前批一面 55min 通过
- 手撕括号匹配
-
实现一个 promiseTimeout 办法,接管两个参数,第一个参数为 promise,第二个参数为 number 类型;该办法的作用为
- 若 promise 在第二个参数给定的工夫内处于 pending 状态,则返回一个 rejected 的 promise,其 reason 为 new Error(‘promise timeout’)
- 若 promise 在第二个参数给定的工夫内处于非 pending 状态,则返回该 promise
- 浏览器工作循环,看代码写输入
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");
- 看代码写输入
// 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>
- Vue 双向绑定实现原理
- Vue.$nextTick 实现原理,是宏工作还是微工作
- Vue scoped 实现原理
- 跨域的实现形式
- 简略申请简单申请 Option 预申请
- 从 url 到页面渲染间产生了什么
- 重绘、回流,优化形式
- HTTP 缓存 强缓存、协商缓存
- 手写 Reac Hookst 计数器(自增),闭包陷阱
- 有限滚动场景,虚构列表设计
- 单点登录
- 前端平安 CSRF
8.7 提前批二面 50min 通过
- 你感觉 Vue 是个怎么样的框架
- Vue DSL 是个什么样的模式
- 什么是 MVVM?
- MVVM 三层别离做了什么事件
- Vue 中组件是什么概念?什么场景你会去封装一个组件
- Vue 组件数据通信有什么形式?别离有什么区别
- Vuex 异步和同步操作别离用什么,区别在哪里?
- 算法题:给出一个数组中有多个对象,对象的属性有用户的 id 和操作的工夫,给出了工夫的起止,输入一个数组,数组中的对象为操作次数和雷同操作次数的用户数,按操作次数从大到小排列
- for in 和 for of 的区别
- const、let 和 var 的区别
- 什么是块级作用域
- 垃圾回收做了什么事件
- 如何让函数作用域外的拜访函数内的变量
- 什么是闭包,手写个闭包
- this 在 JS 中是什么
- 箭头函数和一般函数有什么区别
- 怎么扭转函数的 this 指向
- 说一下 flex 布局,有哪些常见属性,别离用来干吗
- 简略写个 flex 布局
- CSS 有哪些单位 有什么区别
- rem 有什么应用场景
- 浏览器拿到 document 后浏览器的渲染流程
- 什么状况会阻塞渲染,怎么优化
- async 和 defer 有什么区别
- 怎么手动测量渲染工夫
8.16 提前批三面 70min 通过
- 算法
/*
请将第二排天上数组,使得第二排每一位数字是对应的第一排数字的次数
0 1 2 3 4 5 6 7 8 9
- - - - - - - - - -
例如
0 1 2 3
1 2 1 0
*/
- 实现一个 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
- 介绍我的项目,难点、亮点、问题、怎么解决
- HTTP 强缓存、协商缓存
- localstorge 和 HTTP 缓存有啥区别,你会怎么抉择缓存计划
- 缓存地位在哪儿?策略?
- 反诘环节
8.23 HR 面 20min 通过
- 自我介绍
- 职业规划
- 后续在哪个城市倒退
- 爸妈批准吗?有没有女朋友
- 会因为什么因素抉择一家公司
- 有什么感兴趣的业务方向
- 冀望薪资是什么程度?
- 为什么抉择做前端开发?
- 能够过去实习嘛?
- 工作强度是否理解过?是否能承受?