字节飞书日常实习三面凉
记人生第一次面试。虽说凉了,但知道自己那里不足也是可以的。秋招再战吧。先发育几个月。
一面3.11:
- 自我介绍
- 介绍下项目(我就说的简历上面两个项目)
- 项目的难点、解决了什么
- 问了许多项目中的东西(比如用cookie做了什么,有点记不住了,先写记得的一点)
- style-components和CSS模块比,好处在那里?
- 实现左右两块宽度固定中间适配,怎么做(说了双飞翼和圣杯布局的一点思想)
- 还有么?(flex布局)
- flex:1具体意思是什么
- 有了Mobx为什么还要用localStorage(数据持久化)
- localStorage和SessionStorage区别
- 项目用虚拟列表做了什么,怎么做的
- 为什么transform比top快
- 图片懒加载怎么做的,如果一次性滚动到底了呢?怎么优化
- 防抖和节流原理
- ES6特性说几个
- Map和Set你在项目中怎么用的
- let和var区别
- 闭包,闭包场景(之后又问了点this的一些知识)
- HTTP和HTTPS区别
- HTTPS的过程
- 算法:平铺数组(之后又要求算出数组中的深度)
(一面大部分在聊项目)
二面3.16:
- 自我介绍
- 介绍项目
- 问一些项目相关的东西(setInterval弊端,数据实时性)
- react query怎么具体工作的
- 跨域是什么(说了CORS,具体怎么做的,简单请求,非简单请求,预请求检测一些东西)
- 除了CORS还有么(jsonp)
- jsonp原理是什么,怎么做的
- float是什么,能做什么
- word文字环绕用float怎么做
- BFC是什么,那些能触发BFC
- 快排的思想、时间复杂度
- JS的类型存放在那里(栈、堆那些东西)
- 那些存在栈,那些存在堆里面
- new的执行原理
- JS事件循环(宏任务、微任务那些)
- 看代码写结果(和闭包,var、let、宏任务微任务相关,都是老生常谈的一些题目,不写了)
- TCP三次握手、为什么要三次握手
- 问看过React或Vue原理没(回答看过React的,之后就没问了,我:???)
- 代码题:功能就是如果上一次的没请求完,之后的就无响应
function singlePipe(promiseFn) { // TODO } // 模拟一次请求 function bar(data) { return new Promise(function (resolve, reject) { setTimeout(() => resolve(data), 1000) }) } const request = singlePipe(bar) request(1).then((res) => console.log(res)) // 1 request(2).then((res) => console.log(res)) // 无响应 setTimeout(() => { request(3).then((res) => console.log(res)) // 3 }, 1001)
(二面吃亏在八股文CSS上)
三面3.21:
- 自我介绍
- 开始就是说说你最近学的东西(浏览器渲染原理那方面,和个人项目有关)
- transfrom和top
- 为什么tranfrom好,有什么数据之类来表示这个优化的好处(怎么证明你优化了,而不是直观的去感受了)
- 那些元素会生成合成层出来?
- will-change的具体作用
- 为什么会发生重绘、重排
- 深究了许多东西(比如那些会重绘重排,为什么会引发重绘重排,重排重绘原理是什么,如果设置字体大小影响到了其他DOM元素会引发重排么?当时快被问麻了,有点记不得了)
- 常用那些React Hooks
- useCallback和useMemo区别,一般用来干嘛,怎么用
- 如果要你自己实现一个双向绑定,怎么实现
- 怎么监听一个事件(onclick和addEventListener),第三个参数有什么作用
- 冒泡的过程是怎样的?
- 算法:最长连续公共子序列
- 输出结果:
new Promise((resolve, reject) => { reject(1); console.log(6); }).catch(() => { console.log(2); }).then(() => console.log(3), (v) => console.log(v)) .then(console.log) console.log(5);
(基本上什么问题都是细问,最后算法也是一行一行解释,快被问麻的一面)
3.23 收到感谢信。也感谢字节给的面试机会吧。哈哈哈