一九年面了阿里,头条的前端(含node)岗位以及阿里,作业帮的后端岗位,技术部分面试全部通过。大致记录如下
- 简单的自我介绍与项目经验
- 一道 setTimeout/Promise 输出顺序问题的题
- 什么是事件循环
- async 与 generator 的关系以及实现原理
- react 和 vue 有什么区别
- vue 的双向绑定怎么实现的,在 3.0 后呢
- react 的生命周期是什么
- react 中的 key 用来做什么
- 有没有看过 fiber 的代码,原理是什么
- 什么是 virtual DOM
- webpack 的原理是什么,loader 和 plugin 的作用是什么
- 如何使用 webpack 优化体积
- 网站性能优化有哪些方面
- 有没有了解过 shell
- 如何替换一个文件中的内容
- 对一个文件如何只查看特定行的内容
- 你们的 node 的服务端应用如何部署
- docker 部署有什么好处
- 部署时如何利用服务器的多核
- 你们有没有对服务端的异常进行监控
- 你如何看待前端和后端
- 如何查看一个 node 的服务端应用的内存和CPU
- 当服务端的内存发生了 OOM 问题如何排查
- 如何监控某个进程的内存和 CPU
- 当一个云主机的内存占用过大,如何找到内存占用最大的进程
- 数据库索引中为什么要用 Btree
- 如何优化 SQL
- 如何监控数据库的慢查询
- 当一个地址从输入到展示在浏览器中有哪些步骤
- TCP 的三次握手是什么
- TCP 为什么要三次握手
- TCP 与 UDP 的区别是什么,既然 TCP 是可靠的,那它有啥缺点
- 如何在 linux 中拿到 TCP 的状态
- TCP 的拥塞控制是怎么做的
- 什么是 ARP 欺骗
- 什么是防抖和节流
- 写一段关于防抖的代码
- graphql 有什么好处和劣势
- 你遇到过哪些 OOM 的事例,都是什么问题,以及如何解决的
- 什么是 serverless,如何看待它的发展
- 服务端渲染的原理是什么
- 服务端渲染会遇到哪些问题,与客户端渲染如何取舍
- 除了服务端渲染,还有哪些做 SEO 的方案
- react hooks 有什么好处
- 如何做 tracing
- 如果给 log 都加上 requestId,应该怎么做
- async hooks 是用来干嘛的
- 如何设计一个高并发系统
- 对数据库做过什么优化
- 有没有看过 libuv 代码
- 什么是IO多路复用
- redis 的使用场景有哪些
- 你们的 qps 是多少
- 你们业务跑了多少台机器
- 如果优化你们的 qps
- 如何做弹性扩容
- 如何设计一个短网址服务
- rpc 与 rest 相比有什么优势与劣势
- 什么是TCP粘包
- 如何设计一个消息队列,要注意什么地方