面试题:说说 Redisson 分布式锁的原理?
Redisson 是一个基于 Redis 的 Java 客户端,它封装了分布式锁的实现,解决了传统 SETNX 等方法的局限性。其核心原理围绕 原子性、安全性 和 自动续期 设计,以...
面试题:Redis 在生成 RDB 文件时如何处理请求?
Redis 在生成 RDB 文件时,通过 fork 子进程 和 写时复制(Copy-On-Write, COW) 机制,能够在不阻塞主线程的情况下处理客户端请求,同时保证生成的 RDB 文件数据一致...
面试题:CSS 伪元素和伪类的作用和区别?
这是一个经典的 CSS 面试题,理解伪元素和伪类的区别对于掌握 CSS 选择器至关重要。 核心区别总结 伪类 (Pseudo-classes):用于描述一个元素的特定状态或位置。它选择的是已存在的元素,但处于...
面试题:display:inline-block 什么时候会显示间隙?
display: inline-block 元素之间出现空白间隙是一个经典的 CSS 布局问题。这个间隙并非由 margin 引起,而是由于 HTML 中的空白字符(空格、换行、制表符)在渲染时被当作“空白符”处理所导致...
面试题:mouseover 和 mouseenter 事件的区别是什么?
mouseover 和 mouseenter 都是鼠标进入元素时触发的事件,但它们在事件冒泡(或事件传播)的行为上有关键区别: 1. mouseover 事件 触发时机:当鼠标指针进入元素或其任何子元素时触发。 冒泡行...
面试题:typeof NaN 的结果是什么?
typeof NaN 的结果是 'number'。 解释: NaN 是 'Not-a-Number' 的缩写,表示“不是一个数字”。 尽管它的名字是“不是数字”,但在 JavaScript 的类型系统中,NaN 被归类为 number 类型。 这是...
面试题:如何重置 Vue 的 data?
在 Vue 中,“重置 data”通常指的是将组件实例的数据恢复到其初始状态(即组件创建时 data 函数返回的对象)。有几种常用的方法来实现这一目标。 方法一:调用 data() 函数并合并(推荐) 这是...
面试题:Vue 实例在挂载过程中发生了什么?
当一个 Vue 实例(或组件)被挂载(mount)时,它会经历一系列内部步骤,从创建实例到最终将虚拟 DOM 渲染为真实 DOM 并插入页面。这个过程主要涉及 beforeMount 和 mounted 两个生命周期钩子。...
面试题:为什么在 React 中使用 className 而不是 class?
在 React 中使用 className 而不是 class 来指定 HTML 元素的 CSS 类,主要原因如下: 1. JavaScript 语言保留字冲突 这是最核心的原因。 class 是 JavaScript (ES6) 中的一个保留关键字,用于...
面试题:React 的触摸事件有哪些?
在 React 中,为了支持移动设备上的触摸交互,提供了一系列触摸事件(Touch Events)。这些事件与原生 DOM 的触摸事件一一对应,但遵循 React 的合成事件系统(SyntheticEvent),并采用驼峰命...








