当前位置: 首页 > news >正文

高阶前端面试题(含AI相关)

react
Hooks 为什么必须按顺序调用?
参考答案要点

  • 通过链表存储 hook
  • 顺序即索引
  • 条件调用会导致错位
    面试官重点
  • 是否提到 Fiber.memoizedState

useState 的更新是如何批处理的?
参考答案要点

  • 同一事件循环内批处理
  • Concurrent 模式下自动批处理
  • 更新队列 + lane 合并

Fiber 为什么是链表结构,而不是树或数组?
参考答案要点

  • child / sibling / return 指针
  • DFS 迭代而非递归
  • 避免调用栈溢出
  • 支持时间分片(Time Slicing)
    加分
  • 提到 workLoop / performUnitOfWork
    为什么 setState 是异步的,但有时又是同步的?
    参考答案要点
  • 是否在 React 管控上下文
  • 批处理机制
  • flushSync
    TS
    TypeScript 相比 JavaScript 解决了什么问题?
    参考答案要点
  • 静态类型检查
  • 提前发现错误
  • 更好的 IDE 支持
  • 可读性 & 可维护性提升
    面试官判断
  • ❌ 只说“防止 bug”
  • ✅ 能说“约束 + 文档 + 重构安全”
    type 和 interface 的区别?
    参考答案要点
  • interface 可声明合并
  • type 支持联合、交叉、条件类型
  • interface 更适合对外契约
  • type 更适合复杂类型运算
    什么是泛型?你在项目中如何使用?
    参考答案要点
  • 类型参数化
  • 保持类型信息
  • 常见场景:
    • 请求函数
    • Hooks
    • 工具方法
      function request(url: string): Promise {}
      AI相关
      在 AI 应用中,前端和传统业务最大的不同是什么?
      参考答案要点
  • 不确定性
  • 返回结果不可预测
  • 延迟更长
  • 一次请求 ≠ 一次结果
    面试官判断
  • ❌ 只说“慢”
  • ✅ 能说“不稳定 + 非确定”
    为什么 AI 接口不能像普通接口那样直接用?
    参考答案要点
  • 输出结构不稳定
  • 需要容错
  • 需要引导用户预期
  • 需要兜底 UI
    如何避免 AI 任务更新阻塞 UI?
    参考答案要点
  • startTransition
  • Web Worker
  • 节流更新
  • 分片渲染
    编程题
  1. 把’aabcabbb’ -> ‘a3b4c1’
  2. 得到一个新list: [‘high’, ‘highmm’]
    const source = {
    拍摄角度: “高机位 anah”,
    镜头: “8mm鱼眼 nsnnsns”
    };

const options = [
{
label: “构图”,
children: [
{ label: “无”, value: “” },
{ label: “三分法构图”, value: “rule_of_thirds” },
{ label: “居中构图”, value: “centered” }
]
},
{
label: “拍摄角度”,
children: [
{ label: “无”, value: “” },
{ label: “高机位”, value: “high” },
{ label: “低机位”, value: “low” }
]
},
{
label: “镜头”,
children: [
{ label: “无”, value: “” },
{ label: “8mm鱼眼”, value: “highmm” },
{ label: “400mm超长焦”, value: “mmhang” }
]
}
];
js执行顺序
async function async1() {
console.log(“1”)
await async2()
console.log(“2”)
}

async function async2() {
console.log(“3”)
}

console.log(“4”)

setTimeout(function () {
console.log(“5”)
}, 300)
setTimeout(function () {
console.log(“6”)
}, 0)

async1()

new Promise(function (resolve) {
console.log(“7”)
resolve()
console.log(“8”)
}).then(function () {
console.log(“9”)
});

console.log(“10”)

Webpack 和 Vite
Webpack 为什么慢?瓶颈在哪里?
参考答案要点

  • JS 解析 & 转换慢
  • 单线程
  • 大量 IO
  • loader 链路长
    Vite 为什么快?
    参考答案要点
  • 开发环境:
    • 基于 ESM
    • 不打包
    • 按需加载
  • 生产环境:
    • Rollup 打包
  • 预构建依赖(esbuild)
    👉 说“不打包”是关键
    Vite 的 HMR 为什么比 Webpack 快?
    参考答案要点
  • 精准模块依赖
  • 不需要重新构建 bundle
  • 基于 ESM graph
    Css
    flex: 1 是 flex-grow: 1; flex-shrink: 1; flex-basis: 0% 的简写
    ❓ 为什么 flex: 1 会让内容被压缩?
    👉 因为:
  • flex-basis: 0
  • 内容宽度不参与初始计算
  • 空间不够时还允许 shrink

❓ 如果我想“内容自适应 + 占剩余空间”怎么写?
flex: 1 1 auto;
或者:
flex: auto;

http://www.jsqmd.com/news/449394/

相关文章:

  • 【面试专栏|JVM虚拟机】CMS vs 其他垃圾收集器:核心差异+适用场景
  • nginx和docker面试题
  • 2026必学!AI大模型架构全解析:基础模型、微调与插件谁更重要?(收藏必备)
  • 01-02-03 C++编程知识 C++语言的IO(基础) cin和cout
  • 机房U位混乱难解?这个系统用数据说话,精准优化每一分资源!
  • 自定义类型 Traits
  • 实时网络同步技术
  • nodejs基于vue的天天足浴客人KTV包厢预约管理系统vue
  • 【必藏】大模型开发必看:Agent、传统编程与Workflow的本质区别及协同之道
  • 计算机毕业设计java基于Java语言的健身房信息管理系统基于B/S架构的健身房会员管理与课程预约系统设计与实现面向健身场馆的会员充值、器材使用与教练管理一体化平台开发
  • Python在金融科技(FinTech)中的应用
  • 基于SpringBoot+Vue的二手交易平台的系统设计与实现
  • 看完就会:专科生专属的AI论文网站 —— 千笔·专业论文写作工具
  • 写论文省心了 9个一键生成论文工具:MBA毕业论文+开题报告+学术写作深度测评
  • 3月7日(130-132题)
  • 鸿蒙应用开发UI基础第二十节:ArkTS 状态管理 V1 进阶 - 深层监听、跨级共享与渲染优化 - 鸿蒙
  • 【必收藏】大模型产业落地全流程指南:从技术选型到企业价值转化
  • C++中的享元模式
  • 英卡工业设备(上海)有限公司电话查询:业务咨询与使用建议参考 - 十大品牌推荐
  • 自主智能体记忆架构实战教程(非常详细),从OpenClaw到企业级落地,收藏这一篇就够了!
  • C++中的迭代器模式
  • 北京美林泉保洁服务有限公司电话查询:服务预约与沟通注意事项 - 十大品牌推荐
  • STL容器内部实现剖析
  • 【AI开发】—— 山东省智能政策助手部署实战:从 0 到 1 上线与更新避坑指南
  • C++中的构建器模式
  • 英卡工业设备(上海)有限公司电话查询:联系前需了解的事项 - 十大品牌推荐
  • 苍穹外卖:菜品新增功能全流程解析
  • 模板代码跨平台适配
  • 嵌入式C++调试技术
  • 代码覆盖率工具实战