笔者是在今年春招面试的头条教育线,顺利拿到了offer,把还记得的东西写下来,供大家参考一下。
一面
- tcp 和 udp 的区别和使用场景?
- quic 基于 udp 怎么保证可靠性?
- 讲一下同源策略和跨域方案?CORS 的几个头部是什么?
- 讲一下 react fiber?
- vue 双向绑定原理?
- redux 和 mobx 的区别和使用场景?
- typeof null?null instanceof Object?
- typeof 可以判断哪些类型?instanceof 做了什么?
- 实现一个 bind 函数
- 求数组里面最大连续项的和
- event loop
二面
- 怎么优化 h5 的加载速度?
- 离线包怎么更新?怎么知道需要打开哪个离线包?
- js bridge 通信原理?
- 怎么实现 h5 页面秒开?
- 明明不是同一个语言,为什么 js 和 native 可以通信?
- 怎么实现 js bridge 跨多个 app 共用?
- grpc 相比 http 的优势?
- rpc 的调用流程?前端怎么调用 grpc 的?
- 为什么要用 grpc?
- 服务发现为什么用 ip,而不用域名?
- 怎么做 DNS 预解析?
- 怎么实现移动端的布局?
- iOS 下软键盘输入框遮挡遇到过问题么?怎么解决顶不起来的问题?
- 实现两个大数相加
- 求一个数组最大子项的和,要求这些子项在数组中的位置不是连续的
- 常用的 react hooks 方法
- useState 怎么做缓存的?
- react fiber 是什么?
- 怎么解决 useState 闭包的问题?
- useReducer 比 redux 好在哪里?
三面
- 做过哪些公共组件?DatePicker 怎么实现的?难点在哪里?
- 组件封装有哪些原则?
- 组件数据和 UI 怎么分离?
- 有没有做过一些提高工作效率的东西?
- 有没有了解过拖拽?觉得它有哪些难点?
- 有没有做过优化相关的?webpack 做了哪些优化?
- cache-loader 和 hard-source-webpack-plugin 的区别是什么?
- 最近遇到的比较难的项目是什么?你们服务是怎么部署的?
- Puppeteer 可以用来做什么?
刷过的题目
下面是我花了将近一个月的时间整理的一份面试题库。这些面试题,包括我本人自己去面试遇到的,还有在面试之前刷过的题目,我都统一的整理了一下,希望对大家有用。
HTML&CSS
- 你是怎么理解HTML语义化
- 你用过哪些HTML5标签
- metaviewport是做什么用的,怎么写?
- label标签的作用
- 行内元素有哪些?块级元素有哪些?空(void)元素有那些?
- a标签中如何禁用href跳转页面或定位链接
- canvas在标签上设置宽高和在style中设置宽高有什么区别
- 介绍一下CSS的盒子模型
- CSS选择符有哪些?
- CSS3新增伪类有哪些
- 什么是cssHACK?
- Less/Sass/Scss的区别
- 请解释一下CSS3的flexbox(弹性盒布局模型),以及适用场景?
- ......
JavaScript
- 请解释什么是事件委托/事件代理
- Javascript如何实现继承?
- 函数执行改变this
- babel编译原理
- 函数柯里化
- 说一下类的创建和继承
- 说说前端中的事件流
- 如何让事件先冒泡后捕获
- 说一下图片的懒加载和预加载
- js的new操作符做了哪些事情
- 改变函数内部this指针的指向函数(bind,apply,call的区别)
- Ajax解决浏览器缓存问题
- ......
VUE
- vue.js的两个核心是什么?
- vue的双向绑定的原理是什么?
- vue生命周期钩子函数有哪些?
- 请问v-if和v-show有什么区别?
- vue常用的修饰符
- 什么是vue生命周期
- 数据响应(数据劫持)
- virtualdom原理实现
- Proxy相比于defineProperty的优势
- vue中key值的作用
- ......
数据结构与算法
- 哈希
- ⼆叉树
- 链表
- 数组
- 排序
- 堆与栈
- ⾼级算法
- 动态规划