Skip to content

测试题

HTML/CSS相关

  • 文档流的种类,元素类型,幽灵空白节点的原因和解决
  • 浮动的特点,清除浮动的方法
  • bfc是什么,怎样创建bfc,应用场景
  • css选择器的优先级

JavaScript相关

  • for of的执行原理
  • 什么是闭包?闭包应用场景?导致内存泄漏的场景
  • 手写jsonp,深度比较,数组扁平化,防抖/节流,promise/all,race,instanceof,new,apply/bind/call,柯里化,深拷贝,数组去重
  • 手写常见排序算法和查找算法
  • 垃圾回收机制
  • 工厂,单例,装饰器,观察者设计模式的应用场景
  • map/obj比较,set/weakSet比较
  • super在class和对象中的作用和指向
  • es module的import和commonjs的require的区别
  • script脚本中async和defer的区别
  • new的过程发生了什么
  • 闭包的优缺点,内存泄露的场景
  • web worker的使用场景和限制
  • symbol的应用场景

React相关

  • fiber的出现背景和工作过程
  • react性能优化手段
  • setState的同步异步问题
  • useState等基本hook的实现原理
  • React合成事件和原生事件
  • hooks 解决了class组件的什么问题,hoc的应用场景
  • useLayoutEffect和useEffect的区别和应用场景
  • diff算法的执行策略,key机制
  • react旧版,新版架构fiber执行机制
  • react-router的基本实现原理

Vue相关

  • watch和watchEffect
  • ref和reactive以及实现原理
  • toRef和toRef
  • vue2和vue3 生命周期钩子详述
  • setup到底是什么,解决了什么问题
  • pinia的是使用和过程机制,与vuex的区别,vuex的原理
  • 父组件如何调用子组件方法?
  • vue2,3的虚拟dom和diff算法,响应式原理,更新原理机制,与react的原理区别
  • vue-loader原理,官网文档
  • vue的自定义hooks和mixin的对比

前端工程化

  • webpack构建过程,devServer,热更新的实现原理
  • webpack常用性能优化方案(编译速度/打包产物优化/运行时体验)
  • vite和webpack的区别

TypeScript相关

  • interface/type,any/unknown的区别
  • extends的几种用法,与implemnets在继承时的区别
  • 各种高级类型的用法以及实现

微信小程序相关

  • 小程序的生命周期(应用/页面/组件)
  • 性能优化,页面跳转,数据通信的方法

其他

  • 301,302,304,307,401,403,501,502,503,504状态码
  • 跨域的解决方案,cors的过程详解
  • xss/csrf是什么,解决方案
  • 强缓存/协商缓存的过程机制
  • http协议的特点,常见的请求/相应头部,http2.0优点
  • get/post区别,长连接的特点,长/短轮询的特点,正反代理的区别和场景
  • 输入网址后/浏览器渲染过程,css/js会阻塞渲染吗
  • 哪些操作会导致重排和重绘,区别和改进方法
  • 三次握手四次挥手的大致过程,为啥不是2次或4次握手,为啥不是3次或5次握手
  • node的特点,单线程or多线程,应用场景,流式读取文件的优势
  • websocket的特点,和http的区别
  • 项目开发中遇到的难题,怎么解决的
  • 如何排查性能问题
  • cookie,session,token的机制和特点

面试题

MIT Licensed