作为前端 一定要搞懂
一些常见面试题一定要搞懂:
从输入 url 到展示的过程
- 怎么解决跨域问题
- CORS跨域的原理
- token一般可以存放在哪里的?分别有什么好处
- token会不会被伪造?
- 前后端如何验证一个用户是否下线了
JS
- 说一下promise
- Promise.all中如果有一个抛出异常了会如何处理
- Promise.all()是并发的还是串行的?
- Promise为什么能链式调用
- 写过原生的自定义事件吗
- 所有的事件都有冒泡吗?
- 描述下原型链
- 描述一下this
- typeof和instanceof的区别
- 什么是作用域链
- 什么是防抖节流
- 什么是重绘重排
- 函数柯里化
- 闭包
- 递归
- 事件循环机制
- return 、break和continue的区别和作用
- forEach map filter 这些循环哪个可以在循环的过程中终止循环
- js里面哪个循环速度最快
- new运算符的执行过程
- 改变this的方式
- this的指向
- 讲讲AST语法书
- 存储有哪些 分别有什么优点和缺点
- 什么是垃圾回收机制
- 垃圾回收是发生在什么时候?
- 什么是内存泄露 怎么避免
- 宏任务和微任务
- 你知道 typeof null为什么是 object 吗?
- Vue中hash模式和history模式的区别
- null和undefined的区别
- 数组去重 有哪些方法
- 实现一个一组异步请求按顺序执行你有哪些方法?
- setTimeout的执行原理
- 如何在前端实现一个图片压缩
- JSONP的实现原理
CSS
- 盒模型
- 盒模型及如何转换
- BFC
- 水平垂直居中有哪些方法
- rem和em的区别
Ajax
- 4个步骤
ES6
- promise 表达的
- 导入导出 容易搞混淆
- 说下 es6 的 class
- CommonJS和ES6模块的区别
- 平常工作中ES6+主要用到了哪些?
Node
- nodejs Buffer缓冲区
- node原理
Vue
- vue的声明周期
- 哪个声明周期可以获取到DOM元素
- vue3 和vue2有什么不同 ?优缺点试什么 ?
- MVVM 表达
- Vue的响应式原理
- virtual dom 原理实现
- Proxy 相比于 defineProperty 的优势
- 自定义写个v-loading
- this.$nextTick原理
- watch跟computed的区别
- $map
- $set
- diff算法
- Object.definedProperty 和 Proxy
- keep-alive 有啥用
- vue组件之间的通信方式有哪些
- Vue中computed和methods的区别
- 不使用框架如何实现组件按需加载以及原理
webpack
- webpack 原理
- webpack打包机制
- 热更新的理解
- Plugin和 loader 相同和不同点
- vite原理
- 反向代理知道吗?
正则表达式
- 正则里的非如何实现的
算法
- 冒泡排序算法和数组去重
- 二叉树
小程序
- 登录流程
- 支付流程
- 购物车怎么做的
- 白名单 (后端弄)
- 静默登录(后端弄)
http
- http1.0 http1.1 http1.2
- 三次握手
- 四次挥手
- 为什么不是一次两次握手,三次挥手?
- TCP和UDP
- 在项目中如何把http的请求换成https
- https的加密方式
前端安全方面
- 前端安全方面?XSS?CSRF?
- XSS攻击以及如何预防?
项目优化
- 项目做过哪些优化?
- 首屏白屏怎么解决