前端面经
发点面经攒点运气吧
快手一面 8.23(1h已挂)
- 自我介绍:实习经历、项目
- 盒模型差别、选取
- flex,什么作用
- 垂直居中怎么实现、除了用flex怎么实现
- BFC,作用
- 闭包、使用场景
- 防抖节流、使用场景
- 浏览器输入url过到页面显示过程
- TCP、三次握手为什么不行
- 强缓存、协商缓存
- antd为什么能按需加载
- treeshaking原理
- hooks解决了啥、注意事项(自己扩展了为什么要这样)
- 手写深拷贝
- 反问
腾讯一面 8.28(45min)
- 自我介绍
- 做题,大概有七八题看题写输出的
- 手写promise.all
- HTTPS
- HTTP缓存
- CSRF
- XSS
- 跨域
- 如何解决跨域
- 反问
美团一面 8.29(40min)
- 自我介绍
- 介绍ES6
- class关键字实现的原理
- VDOM
- diff算法
- CSS定位
- React.memo()
- 性能优化(从JavaScript、CSS、react、SSR角度挑了一点说)
- 做题:删除有序链表的重复数字
- 面试官开始介绍部门业务
- 反问
腾讯二面 8.30 (1h 已凉)
- 手写题:LRU(用map迭代器写了,问我用其他数据结构怎么实现)
- 智力题:AB两变量交换数值,不能引入其他变量,也不能用解构赋值
- 垃圾回收机制
- 给定一个数组,如果数组只能在中间删除,末尾添加,怎么优化(面试官给出的答案:利用垃圾回收机制的标记清理优化,标记被删除的数组元素,在垃圾回收的时候往一端移动数组,这样只用在垃圾回收的时候做一次移动)
- 为什么出现了promise
- async和await、以及实现原理
- react和vue相比jQuery有什么不同,或者说解决了什么问题
- JavaScript的数组声明为什么可以不指定长度(面试官说和JavaScript虚拟机相关,不会,然后让我给出自己的方案)
- 跨端了解多少
- 有没有感兴趣的方向?记不清了
- 实习或者自己做项目中具有挑战的事情
- 反问
美团二面 9.1(1h 已挂)
- 自我介绍
- 描述ajax过程
- 异步解决方案有哪些
- 手写:一个请求的结果是另一个请求的参数,怎么实现,可写伪代码
- 类组件生命周期
- 函数式组件与类组件对比
- hooks优势
- 使用hooks注意的点
- 父子组件通信方式
- 手写场景题:抢红包,总金额m,分给n个人,最大的红包不能超过m/2,最小的红包不能低于0.1
- 第二段实习写了多少个需求
- 实习中遇到的困难
- 每天几点上下班,能接收受吗
- 对自己做的东西满意吗
- 学习一个新知识,你应该如何去学习,比如说第一个月计划干什么第二个月计划干什么,还是说根据情况来看
- 分享实习或者是项目中让你印象深刻的经历
- 工作难不难找,现在秋招进度如何
- 说我春招投了美团没面,系统给我备注的好像是不考虑美团,问我是不是这样...
- 反问