面试真题记录

3/13/2026 nodeinterviewpersonal

# STICKY

什么是 nodejs?(事件驱动、非阻塞 I/O)

nodejs 事件循环机制(timers >> I/O callback >> idle,prepare >> poll >> check >> close callback)

浏览器和 Node 中 事件循环区别浏览器和 Node 中 事件循环区别 (浏览器:每次循环处理一个宏任务后清空微任务队列

防抖和节流函数(return function(...args),fn.apply(this,args))

手写装饰器(className, methodName, originalMethod,return function (...args) )

# Soloent

Electron GitLab CI (缓存 node_modules、自动化测试、交叉编译)

Electron 多平台处理(配置文件分离、特定的应用行为(mac)、菜单和快捷键、渲染进程识别平台等)

Electron 如何实现遥测(监听用户的特定行为、收集错误信息、指标信息、用于改进产品)

大模型如何拥有记忆(并没有,只是通过维护上下文,将系统提示词+会话摘要+最近 N 轮对话+当前用户对话 合并发送)

CLAUDE.md 是什么?实现原理是?(持久化记忆文件 用户级记忆+项目级记忆+模块化规则+自动记忆)

# AltenChina(HP)

# Electron

IPC 的核心功能模块 (send+on、invoke+handle、sendSync)

如何设置只开启单窗口(app.requestSingleInstanceLock() 请求单例锁,没拿到应用程序退出)

多窗口之间如何通信(通过主进程转发、使用 BroadcastChannel API)

如何实现窗口透明背景(BrowserWindow transparent: true,frame: false, html-body-background: transparent;)

发生内存泄漏如何排查(Chromium DevTools-Memory-记录两个 Snapshot-选择 HeapSnapshot-comparison)

# 其他

Redux 核心概念(单一数据源、State 只读、通过 Reducer 进行修改)

Typescript 什么是类型断言(就是 as 而已)

JS 怎么实现深拷贝 (JSON.parse(JSON.stringify(obj)) / structuredClone(obj))

观察者模式(Nodejs = EventEmitter,js = addEventListener(或者自己封装 EventEmitter,js))

箭头函数和普通函数的区别(this 指向不同、不能作为构造函数、没有 arguments、call、apply、bind、prototype)

自己封装 Ajax

CSS flex 实现表格(flex-table 设置 max-width,table-row 设置 display:flex,table-cell 设置 flex: 1 均分宽度)

<div class="flex-table">
  <!-- 表头行 -->
  <div class="table-row table-header">
    <div class="table-cell">ID</div>
    <div class="table-cell">姓名</div>
    <div class="table-cell">年龄</div>
    <div class="table-cell">城市</div>
  </div>
</div>

# UXN

22. 括号生成

2700. 两个对象之间的差异

SQL 题目

# FUXUN

MySQL 分布式事务是如何实现的?(mysql=XA+2PC,XA_START、END、PREPARE、COMMIT、ROLLBACK)

MongoDB 千万级数据如何导出,并在实际业务中操作?(后台 CRON 预聚合/实时需要优化聚合+索引)

Docker Compose 如何指定网络 IP?(networks: 容器: ipv4_address)

Redis List 常用命令 (lrange k1 0 -1)

Redis Hash 常用命令 (hkeys k1)

MongoDB ABC 联合索引,AB AC 是否生效?(最左前缀原则,AB 完全生效、AC 部分生效)

MySQL 与 MongoDB 地理索引对比(POINT, LINESTRING, POLYGON SPATIAL 索引 vs GeoJson 2d 索引,mongodb 原生支持 WGS84)

Node GC 新生代如何转变为老生代?(通过晋升、经历 GC 次数、To 区内存不足、大对象直接分配)

js 原生数组头部插入删除 (unshift,shift)

js 参数传递是值传递还是引用传递 (基本类型传值、引用类型传递引用)

  • 基本类型: String Number Boolean Symbol null undefined
  • 引用类型: Object Array Function

# HUAWANG

计算属性 (computed) 和侦听器 (watch/watchEffect) 对比(前者有缓存值和返回,watch 能获取旧值,watchEffect 优先级高+自动收集)

Vue2/3 的响应式原理 (Object.defineProperty vs Proxy)

toRef 什么时候使用 (reactive > ref 可以. value)

type 和 interface 的区别 &/extends,interface 支持声明合并且只能定义 object

any、unknown、never 的区别(any=放弃检查,unknown=类型安全的 any,never=不可能)

> CommonJS 是运行时引入,ESM 是编译时静态分析 + 运行时执行

# CPIC

css-矩形旋转(transform: rotate(45deg))

防抖和节流函数

Promise.all Vs Promise.allSettled(all 只要有一个 Promise 拒绝就结束,只能返回第一个发生的错误,allSettled 一定会返回所有的结果)

Vue 路由传参(this.$router.push/query/params)

# CTrip

NestJS 数据初始化的时机(OnApplicationBootstrap)

Nestjs 全链路追踪方案(middleware 生成追踪 id,LoggerService 封装,interceptor 记录请求耗时 return next.handle().pipe(()=>{}))

# DEEPSIGHT

浏览器的事件循环

VUE2/3 响应式原理


70. 爬楼梯

867. 转置矩阵

# YIKA

redis 计划任务时间大于轮询时间时怎么处理(双重缓存/缓存续期)

prisma 和 typeorm 区别

NestJS 解决循环依赖的问题(forwardRef)

Nest 守卫、拦截器、中间件 的区别

手写装饰器(className, methodName, originalMethod,return function (...args) )

# SHANGHAI LONGYI

express 和 koa 中间件的区别(线性 / 洋葱圈)

MySQL 和 MongoDB 的索引数据结构(B+ Tree vs B Tree)

B 树(😎 和 B+树(B 树所有节点都存储数据,B+树只有叶子节点存储数据,相互链接,查询更稳定,效率更高)

Docker 常用的网络模式有哪些?(默认 bridge、host 直接用主机、none 无网络)

Nest 守卫、拦截器、中间件 的区别


665. 非递减数列

简答题:微信登陆数据流向

# StoreHub

什么是微服务?使用微服务的优势/缺点有哪些?

Mysql & MongoDB & Redis 介绍,分别在哪些场景下发挥优势?

查找 4 月份的日志,基于 name 去重

mongodb 中索引有哪些类型?分别怎么使用?

把 callback 改写成 Promise

# 算法题:括号匹配 leetcode 20

算法题:括号匹配 leetcode 20

算法题:搜索旋转排序数组 leetcode 33

# NGA

什么是 控制反转 && 依赖注入?

多实例情况下,怎么通过 redis 防止定时任务多次执行


# ShuRui

Node Stream 是什么?有哪些种类的 Stream?


# MiaoDian

Mysql 查询学生三门科目总分最高的 前三名

# XINYUE

fs.readFile() 和 fs.createReadStream() 有什么区别?

如何使用 nodejs 读取一个本地文件

如何做到创建 nodejs 集群并做到不中断重启

mongo 扣减库存时如何保证原子一致性

请写出符合下列要求的 mongodb 查询语句

如何使用 redis 实现简单的消息队列

用 redis 实现一个分数排行榜,并从中查找前十名的数据(zadd board 100 Player1, zrevrange board 0 9 WITHSCORES)

列举 js 中数组遍历相关的方法

列举几个 es6 以后的新特性

用 ts 实现多态,父类 animal,子类 cat 和 dog,包含 name 属性,实现 say 方法


# CAROTA

node 如何设置使用内存大小

Node 主进程和子进程是否共享内存

如何预防 XSS 攻击

http 和 https 的区别?证书认证过程?pki?

# ZStack

Node.js 事件循环机制

useMemo / useCallback / useEffect 三者区别

什么是 $facet

# DAOYOUYUN

什么是 nodejs?(事件驱动、非阻塞 I/O)

nodejs 事件循环机制(timers >> I/O callback >> idle,prepare >> poll >> check >> close callback)

浏览器和 Node 中 事件循环区别浏览器和 Node 中 事件循环区别 (浏览器:每次循环处理一个宏任务后清空微任务队列

什么是泛型?

防抖和节流函数(return function(...args),fn.apply(this,args))

如何 做 http 缓存

TCP / UDP

算法题目