First-Interview
前端面试失利
- 主要原因:
- 缺少前端理论(校内课程没学到,项目应用中也没有特地去学)
- 准备不足(AI 面试前几乎没有相关知识储备)
- 不清楚面试问题的方向
针对以上三个问题,考虑到以后大概率不会再面试前端,因此需要做另外的准备。
解决方案
- 查找相关企业的面试题目
- 学习新内容(无论是项目还是课程)时,准备一个技术文档,随时记录相关知识点(如前端理论、框架原理等)
- 了解面试常见问题的方向(如前端性能优化、浏览器渲染原理等),提前复习
具体本次面试的问题
- 问到 CSS 如何进行优化以减少页面加载时间
- 问到转换器和路由器的区别
- HTML 缓存原理
- 还有些其他问题(忘了)
一下对部分问题的回答:
前端优化
- 主要分三个方向:
- 网络优化:使用 CDN、压缩资源文件、减少 HTTP 请求等
- 代码优化:使用懒加载、代码分割、减少 DOM 操作等
- 框架优化:使用框架的性能优化技巧,如 React 的 PureComponent、Vue 的异步组件等
- 资源加载的加速方法(如图片):
- 图片压缩
- 图片分割(但是需要保存位置高)
- Sprite 图(将多个小图合并成一张大图,减少 HTTP 请求)
- CDN 加速(将资源部署到离用户更近的服务器上)
- UNPKG 加速 CDN
- 懒加载:也叫延迟加载,指的是在长网页中延迟加载图像(可视区域没有滚到资源需要加载的地方时候,可视区域外的资源就不会加载)
- 实现:用户滚动时,判断元素是否在可视区域内,如果在则加载,否则不加载
- iconfont:字体代替图
- 前端(Web)缓存:
- 浏览器缓存:如 localStorage、sessionStorage、cookies 等
- HTTP 缓存:分为强缓存和协商缓存
- 强缓存:浏览器直接使用缓存,不向服务器发送请求
- 协商缓存:浏览器向服务器发送请求,服务器返回 304 状态码,表示缓存有效
- 原理:浏览器对缓存发起 http 请求,如果资源存在于缓存且请求头 expires 或 cache-control 中的时间未过期,则直接使用缓存,否则向服务器发送请求。向服务器请求时,通过 last-modified 和 etag 等字段来判断缓存是否有效(有效则依然使用缓存)。
------------- 本文结束 感谢阅读 -------------