中级全栈工程师笔试题

发布于:2025-07-28 ⋅ 阅读:(9) ⋅ 点赞:(0)
  1. 解释ACID特性,如何在node.js中实现事务操作
  2. 针对React单页应用,请提供至少5种性能优化方案,并解释其原理:
  • 减少首屏加载时间
  • 优化渲染性能
  • 资源加载策略
  • 状态管理优化
  • 代码分割方案
  1. 如何防止以下攻击:
  • JWT令牌挟持
  • Graph QL查询过载
  • 目录遍历攻击
  1. 实现一个计数器函数 createCounter(),每次调用返回递增数字
  2. 列出三个常见的React类组件生命周期方法及用途
  3. 为什么不能在条件语句中使用Hook,例如?
if (condition){
    useEffect(() => {}, [])
}
  1. package.json里面 dependencies和devDependencies的区别
  2. 请使用React实现一个搜索组件
interface SearchResult {
    id: string,
    title: string,
    description: string
}

function SearchComponent({onSeach, debounceTime}): 
                         {
                            onSearch: (searchQuery: string) => Promise<SearchResult[]>,
                            debounceTime?: number 
                         }
                         {
                  //你的实现
}

要求:
实现防抖操作
处理加载状态和显示
使用AbortController取消未完成请求
结果列表虚拟滚动

  1. 设计电商系统核心表结构
    a. 用户表
    b. 商品表
    c. 订单表
    d. 支付记录表
    要求:
    包含必要字段和类型
    标注主键/外键
    设计订单状态机(使用Enum或状态表)

  2. Mysql索引优化,对于以下查询,如何设计最优索引?说明原因

select * from orders where user_id = 1001 and status = 'completed' order by created_at desc limit 10;
  1. 订单服务要调用库存服务和支付服务
    如何设计分布式事务保证:
    库存扣减和支付操作的一致性
    失败场景的补偿机制
    服务间通信的幂等性
    给出解决方案 (Saga/TCC等)和伪代码实现

  2. 使用TypeScript实现以下任一模式
    a. 观察者模式(订单状态变更通知)
    b. 策略模式(多种折扣计算策略)
    c. 装饰器模式(API请求日志记录)

  3. 解释 setImmediate和process.nextTick的执行差异

  4. 请输出下列代码的结果:

async function async1(){
  console.log('A');
  await async2();
  console.log('B');
}

async function async2(){
   console.log('c')
}
console.log('D');
setTimeout(() => console.log('E'), 0);
async1();
new Promise(resolve => {
   console.log('F');
   resolve();
}).then(() => {console.log('G')});
console.log('H');

网站公告

今日签到

点亮在社区的每一天
去签到