前言
好久不见,我是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 = 300A.__proto__.a = 500A.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.jsconsole.log('a finish');// b.jsconsole.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 31 2 1 0*/
- 实现一个HardMan
HardMan("jack")输入i am jackHardMan("jack").learn("computer")输入:i am jackLearning computerHardMan("jack").rest(10).learn("computer")输入i am jack 期待10sStart learning after 10 secondsLearning computerHardMan("jack").restFirst(5).learn("computer")输入期待5sStart learning after 5 secondsi am jackLearning chinese
- 介绍我的项目,难点、亮点、问题、怎么解决
- HTTP 强缓存、协商缓存
- localstorge和HTTP缓存有啥区别,你会怎么抉择缓存计划
- 缓存地位在哪儿?策略?
- 反诘环节
8.23 HR面 20min 通过
- 自我介绍
- 职业规划
- 后续在哪个城市倒退
- 爸妈批准吗?有没有女朋友
- 会因为什么因素抉择一家公司
- 有什么感兴趣的业务方向
- 冀望薪资是什么程度?
- 为什么抉择做前端开发?
- 能够过去实习嘛?
- 工作强度是否理解过?是否能承受?