前端面试题汇总中级
前端
小满 中级前端面试题
自我介绍
CPU 执行原理 以及冯诺依曼体系结构
说一下 LHS RHS 是什么
100T 文件如何遍历里面的信息?
介绍一下dll 文件
HTML 的字符实体是什么
js底层数据结构如何存储在V8里面
H5新特性
如果提到localstorage 就追问 localstorage API 以及 localStorage 实现原理 以及 localStorage 存在哪儿 以及localStorage 跨域
如果提到PWA技术 就追问 PWA优点 继续追问 Service Workers 继续追问 PWA和hybrid的不同
如果提到canvas 就追问 canvas 常用API
如果提到webSocket 就追问 webSocket 的用法 以及手动实现ws协议 继续追问SSE技术 和 ws的区别
如果提到webWorker 就追问 webWorker 用法 以及实现原理
浏览器如何跨tab页通讯?
如何区分强网弱网
什么是灰度
async defer
SEO
BFC
回流与重绘 以及优化方案
webComponents 以及 微前端 以及 emp 模块联邦
Css盒模型 和 怪异盒模型区别 以及统一策略
css 伪类
为什么哔哩哔哩用vmin 不用 vh
css变量
css flex grid
Css 动画 关键帧等
bem架构
如果需要手动写动画,你认为最小时间间隔是多久,为什么? 答:多数显示器默认频率是60Hz,即1秒刷新60次,所以理论上最小间隔为1/60*1000ms=16.7ms
less scss 解决了什么问题
postCss 是干嘛的 是否用过 是否写过插件
是否用过tailwindCss 是否用过unoCss
typeOf null 是什么 原因是什么
比较两个对象是否相等
判断是不是数组
说说常用的es6
proxy Reflect 为什么要配合 proxy劫持 函数 劫持for in
迭代器 生成器 for of 以及 Iterator 以及数组解构原理 和对象解构原理(深入V8引擎)
Class 用法 super原理 继承 如何定义私有属性
AMD CMD UMD CJS ESM IIFE 的区别
Promise 静态方法 以及 all 实现原理 有限状态机
map set weakMap weakSet
微任务 宏任务 同步 异步 async await
装饰器 以及 装饰器解决了什么问题
ArrayBuffer 如何使用 以及跟webGl 的关系
讲一下 GLSL Shader 实现亮度(Brightness)、对比度(Contrast) 和边缘检测(Edge Detection) 是如何实现的回答的时候忘记了对比度的算法实现没答上来,讲了下明度 Luminance 的调节;亮度Brightness是RGB+亮度系数;边缘检测和图像锐化是使用 Convolution Kernel 卷积核加深中心像素与周围像素的色彩差值梯度,使边缘更加突出
计算机图形绘制原理
WebAssembly 工作原理 如何编译成wasm
webRTC 架构 如何 实现推流 拉流
垃圾回收 内存泄漏 堆栈
深拷贝 防抖 节流
实现深拷贝的几种方法 追问 对象群嵌套15层 我想用14层的一个属性 最优解决方案 引出 Immutable js 追问 Immutable js 实现原理 字典 位分区 及 树压缩算法
什么是纯函数 什么是副作用函数
浏览器输入一个url 发生了什么 DNS解析顺序 追问OSI 七层网络模型 三次握手 http https 区别 http1 2 3 区别 强缓存 协商缓存
TCP 跟 UDP 的区别
TCP 的 超时重传协议 滑动窗口**
Ajax fetch navigator.sendBeacon 三个的区别
nodejs 是否用过
nodejs-napi addon
是否用过一些库 如 express koa nest 追问用的什么数据库 以及高速缓存 如 redis ,用的什么ORM框架,如果熟悉express 追问 中间件原理,熟悉nest 追问 ioc控制反转 DI 依赖注入 设计模式 以及MVC 架构 和MVVM 区别 继续追问nest rxjs 库用法 以及原理 继续追问nest 微服务 gRPC MQ 以及网关 。
聊聊数据库 mysql 底层数据结构 为什么使用B+ 树,继续追问 mysql事务以及四大特性 追问悲观锁和乐观锁
数据库的引擎?
聊聊redis redis是单线程还是多线程 以及底层原理
聊聊nodejs 的 vm虚拟机 以及PAI 以及 底层libuv openSSL
聊聊nodejs 子线程 进程守卫怎么做
聊聊 断点续传怎么做(前后端)
Npm 是什么 package-lock.json 是做什么的 npm 缓存原理
pnpm 实现原理 以及 monorepo 架构
如何发布 npm 包 有没有发过 自己的 npm包 周下载量多少
webpack vite rollup esbuild swc gulp
Webpack 脱口而出的配置 webpack 分包 webpack 打包优化 webpack打包原理 以及 HMR 原理
Vite原理 中间件原理 是否写过vite插件
rollup 和 webpack的区别
esBuild 常用命令 以及 为什么这么快
Vue2 3 区别
Diff算法 追问 最长递增子序列算法 以及 二分查找 和 贪心算法
响应式原理 追问 为什么使用位运算
Vue源码调度机制 以及nextTick执行机制
Vue3 新增2个内置组件 介绍
Vue3 keep-alive LRU 算法以及原理介绍
Vue-router 原理 hash 和 history 以及 对应微前端 以及monorepo 架构
Pinia vuex 设计模式 以及实现原理 为什么刷新数据丢失 以及解决方案
AOT 和 JIT 的区别
动态扩容 动态缩容 横向扩容 怎么做
nginx 四层LB负载均衡 nginx七层LSB 负载均衡怎么做 nginx多机房异地容灾怎么做
两地三中心 怎么做?
nginx源码中的unix域是怎么做的 做什么的
nginx lua插件怎么写
网关怎么做 网关熔断怎么做 网关分流怎么做 网关加密怎么做
FPS 帧率 requestIdleCallback performance
什么是服务熔断?什么是服务降级?
Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
SpringBoot和SpringCloud的区别?
SpringBoot和SpringCloud的区别?
什么是 feigin ?它的优点是什么?
Ribbon和Feign的区别?
Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
运行Spring Boot有哪几种方式?
如何理解 Spring Boot 中的 Starters?
如何在Spring Boot启动的时候运行一些特定的代码?
Spring Boot 需要独立的容器运行吗?
Spring Boot中的监视器是什么?
如何使用Spring Boot实现异常处理?
你如何理解 Spring Boot 中的 Starters?
springboot常用的starter有哪些
SpringBoot 实现热部署有哪几种方式?
如何理解 Spring Boot 配置加载顺序?
Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
如何集成 Spring Boot 和 ActiveMQ?
Redis篇
为什么要用缓存
说说 Redis 的线程模型
Redis 持久化方式有哪些?以及有什么区别?
怎么使用 Redis 实现消息队列?
说说你对Redis事务的理解
熟悉哪些 Redis 集群模式?
Redis 常见性能问题和解决方案有哪些?
Redis 报内存不足怎么处理?
说说Redis持久化机制
缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问
redis的数据类型,以及每种数据类型的使用场景
Redis 为什么是单线程的
Redis 常见性能问题和解决方案?
了解Redis的事务吗?
Redis 的数据类型及使用场景
队列和栈是什么,列出它们的区别
BlockingQueue是什么
简述 ConcurrentLinkedQueue LinkedBlockingQueue 的用处和不同之处。
ByteBuffer 与 StringBuffer有什么区别
HashMap的工作原理是什么
HashMap 的 table的容量如何确定?loadFactor 是什么? 该容量如何变化?这种变化会带来什么问题?
HashMap 和 HashTable、ConcurrentHashMap 的区别
HashMap的遍历方式及效率
如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办
HashMap 是线程安全的吗?并发下使用的 Map 是什么,它们内部原理分别是什么,比如存储方式、 hashcode、扩容、 默认容量等
HashSet和TreeSet有什么区别
WeakHashMap 是怎么工作的?
LinkedHashMap 和 PriorityQueue 的区别是什么
LinkedList 是单向链表还是双向链表
LinkedList 与 ArrayList 有什么区别
ArrayList 和 HashMap 的默认大小是多数
ArrayList 和 LinkedList 的区别,什么时候用 ArrayList?
ArrayList 和 Set 的区别?