不想再约面试了。。
rt,打算花一段时间把一些常见的八股过一遍再投递,再整理一下项目和实习的问题,有些真的一知半解的
不求面试通过率有多高,只是面试的时候能比较自信一点吧
一、HTML+CSS
- 常见的块级元素和行内元素,及区别
- defer和async的区别
- CSS选择器的优先级
- 解释BFC
- CSS的单位和响应式布局
- position属性和意义
- display的属性
- flex布局的相关属性
- 如何实现两栏布局,三栏布局
- 实现三角形
- 实现水平垂直居中的方法
二、JS
- 基本数据类型和引用数据类型
- bigint和symbol的使用场景
- 判断数据类型的方法和优缺点
- 隐式类型转换,+,-的规则
- ==和===的区别和规则
- 浮点数精度
- let var const的区别
- this指向的判断
- 箭头函数
- 原型和原型链的作用
- promise的使用场景和相关API
- 事件循环机制 浏览器和node
- 垃圾回收
- 闭包和作用域
- raf和ric
- 事件委托,事件冒泡
- 浅拷贝,深拷贝,口述如何实现深拷贝
- 防抖和节流
- 数组的相关api
- JS的设计模式
三、工程化
- esm和cjs的区别
- npm,yarn,pnpm的区别
- webpack和vite的区别,vite为什么比webpack快
- webpack的loader和plugin
- webpack打包的全流程
四、Vue
- 组合式和选项式api
- vue和react的区别
- 虚拟dom的概念和作用
- diff算法的流程
- vue2和vue3的双向绑定机制
- vue的生命周期
- v-if,v-for,v-show
- computed和watch的区别
- vue组件通信的方式
- 如何封装vue组件
- vuex和pinia的区别
五、浏览器&网络
- 进程和线程
- 浏览器的渲染过程
- 重绘和回流
- 浏览器的缓存机制
- 浏览器存储(cookie,webstorage)
- 浏览器安全(xss和csrf)
- 浏览器的跨域问题及解决方法
- get请求和post请求的区别
- 常见的状态码
- 常见的请求头和响应头
- http1.1和1.0的区别
- http2和http1.1的区别
- http3和http2的区别
- https相比http如何保证安全
- tcp的三次握手和四次挥手
- tcp和udp的区别
- 输入url会发生什么
- websocket和SSE
- 跨标签通信的方法
六、性能优化相关
- 性能指标:fp,fcp,lcp
- css:减小重绘回流,transform运用,选择器,预加载
- js:减小复杂度,适当运用闭包,defer和async的设置
- vue:路由懒加载,Keepalive
- webpack/vite构建/打包:分包,代码压缩,按需引入
- 网络相关的优化方法:缓存,预请求
- 资源处理:图片压缩,雪碧图