字节前端面经
一面:
- 自我介绍
- 项目亮点
- 实习期间学到了什么
- 数据类型
- 怎么判断是Null
- 怎么判断数组
- 浏览器是单线程还是多线程
- web worker
- 布局有哪些
- vue2和3区别
- diff算法
- vue的生命周期
- 浏览器关闭后,vue的生命周期
- 怎么解决跨域
手写:
- 输出什么
- 单行超出省略,多行超出省略
- 深度优先遍历
二面:
- 自我介绍
- 项目难点,拷打二十分钟
- js defer和async区别
- IOS七层模型
- HTML缓存
- cookie有什么缺点
- tcp和udp的区别
- udp既然这么不可靠,那么他的应用场景有哪些
- https比http好在哪里
- promise用来干什么,解决了什么问题
- 宏任务和微任务有哪些
手写:
- 事件循环
- promise.all
- 输出两个日期之间的所有日期
三面:
- 前面的面试体验怎么样
- 实习之后的提升
- websocket断开后怎么重连
- websocket是否有跨域
- 大文件的断点续传怎么实现,数据传输一半断掉了怎么处理
- 前端怎么进行分片处理
- 按需加载怎么实现原理
- ES6 和 CommonJS 模块化区别
- 路由 hash 和 history 区别
- 怎么监听路由的变化
- 服务端怎么配置history
- addEventListener 第三个值了解吗
- 用 image 和 background-size做背景,调整大小时怎么修改样式
- object-fit
- es5 实现继承的方式
- es5 实现一个类,里面的 id 递增
- 寻找公共父节点
- 前端安全性问题
- 怎么预防 XSS 攻击
- CSP
三面面得不是很好,已挂