字节跳动面经
一面面试时间:2021-1-7 14:30 - 15:50
二面面试时间:2021-1-7 16:00 - 16:40
三面面试时间:2021-1-18 18:00 - 19:00
HR 面时间:2021-1-20 17:30
一面
自我介绍
CSS部分
- 第一个问题:display 有哪几种用法
display: none;
的作用是什么,有什么效果。与visibility: visible;
的区别是什么- flex 的用过没有,写一个左栏定宽,中、右两栏等宽的布局
- 上述代码中
flex: 1;
的原理是什么? 你用过flex-shrink
吗? - 知道 CSS 虚拟 DOM (VDOM)吗?VDOM 的作用是什么?为什么要减少重绘和重排呢?或者说 VDOM 在浏览器中以什么样的形式存在(表现形式)?
浏览器相关的问题
- 常用的请求方法有哪些?GET/POST 的区别是什么?
- http 是什么层的协议? 传输层通过什么协议建立连接的? TCP/IP 是怎样完成通讯的?TCP 三次握手的目的是什么?“客户端和服务端都要询问对方是否处于可通讯状态并接受对方的应答”
- 我看你用过 WebSocket ,你能说说 WebSocket 是怎样建立连接的吗?客户端如何确认连接上了服务端没有?
- 常见的
Header
有哪些key/value
- 上个问题回答到了
Acess-Control-Allow-Origin
,于是问Acess-Control-Allow-Origin
的作用是什么? “允许跨域” 为什么要允许跨域? - 在发送请求之后,服务端如何确认客户端是否发送完了数据?也就是说怎么知道数据还在发送还是已经发送完成?
- 浏览器的事件循环 event loop 是怎么样的,然后给我出了一道题,让我写出打印的先后结果,我写完题之后解释了一下我对于事件循环的理解
console.log('start')
setTimeout(() => {
new Promise((resolve, reject) => {
console.log('promise')
}).then(() => {
console