面试的时候果然是,下面的这些命令你学会了吗,面试十有八九会被面试官问到,还好自己刷题比较多,这也验证了一个说法,大家在面试字节等目前比较火的互联网公司,一定要记得多刷题,文末会有自己面试的时候准备好的面试题PDF文档,有注意各位查漏补缺,有需要的可以找我免费获取到,这次面试的答案我也已经整理出来了,文末会有获取方式! 具体的面试题,大家看正文吧!
一面
这一面主要问了基础部分, 一部分题目我会带上提示
- TCP 三次握手/四次挥手/等待2MSL意义/建立连接但客户端故障
- TCP 慢启动/拥塞控制, 快速重传/快速恢复
- TCP UDP QUIC(QUIC是Http3的底层协议)
- Http2相对于Http1.1新增了哪些东西, 主要是信道复用之类的
- 浏览器渲染过程,
注意只是渲染过程, 就是从解析DOM树到展示在屏幕这个过程主要是 令牌化/建树/收集样式表/布局渲染树/绘制列表/栅格化/绘制图块/...这些过程, 推荐阅读浏览器的工作原理:新式网络浏览器幕后揭秘
- 强缓存与协商缓存
主要讲了下E-Tag和Last-Modified以及对应的标识, 强缓存方案与协商缓存方案的场景, 比如index.html该用哪个?
- CSS的水平居中与垂直居中
- 移动端1px, 老问题啦
- Git操作
主要是revert与reset, 我们工作室使用的是Git Flow, 并且区分Master和Dev分支这种, 小哥说了一个Git Flow无法handle的场景, 即一个feature还未合并到Master, 但是后面的一个feature已经通过提测要并进主干, 这时要如何处理?
- React: 新旧生命周期的问题, 为什么要废弃旧版的(约束开发者以及Fiber架构可能会将其打断), 新版的有什么特点(getDerivedStateFromProps(nextProps, prevState), 这个方法是静态方法, 也就说你无法在里面获取到this, 还有就是入参为prevState, 这样就保证state和props之间更隔离). 还有就是我觉得很好玩的getDerivedStateFromErrors和componentDidCatch的协作.
- React: PureComponent, 浅比较, 放一下shouldComponentUpdate中shallowEuqal的源码:
- React: setState之后发生的.
多次setState的合并与获取最新的state, 其实这两个是同一