# 1. OffscreenCanvas 在 Worker 中的合成与渲染能力 A OffscreenCanvas 只支持 2D 上下文 B 每帧都必须重新传输控制权 C OffscreenCanvas 在 Worker 中绘制并直接合成,transferControlToOffscreen 零拷贝传输,渲染计算脱离主线程 ✓ 正确答案 D Worker 内可以自由使用 CSS
# 2. Chrome 的 DevTools Layers 面板与图层边界可视化分析 A Layers 面板只能看图层数量 B Layers 面板展示图层边界、内存与提升原因,用于识别图层爆炸并治理合成开销 ✓ 正确答案 C 所有元素都应独立成层 D will-change 不会产生图层
# 3. 合成层纹理的分配、回收与 GPU 内存曲线 A 纹理只分配一次永不回收 B 合成层纹理按提升与重绘分配、销毁时回收,GPU 内存曲线不回落说明图层未回收需治理 ✓ 正确答案 C 内容变化不产生纹理上传 D GPU 内存与合成层无关
# 4. 主线程阻塞时合成线程仍能流畅的效果类型 A transform/opacity 动画与滚动由合成器线程处理,主线程阻塞时仍流畅,但交互与布局类效果仍卡顿 ✓ 正确答案 B 主线程阻塞时所有动画都卡顿 C 合成线程依赖主线程每帧计算 D 视频播放也需要主线程合成
# 5. V8 的 Maglev(中级优化)与 TurboFan 在不同函数调用频率的工程价值 A V8 只有一个优化编译器 B Maglev 比 TurboFan 优化更深 C Maglev 为中等热度函数快速优化、TurboFan 为热点函数深度优化,函数按调用频率升级编译层级 ✓ 正确答案 D 去优化不会影响性能
# 6. Concurrent Marking 与 Incremental Compaction 在主线程阻塞的缓解 A 并发标记与增量/并发压缩把 GC 工作移出主线程,缩短停顿,但堆增长仍会放大主线程 GC 成本 ✓ 正确答案 B GC 标记必须独占主线程 C 压缩阶段与主线程无关 D GC 暂停与堆大小无关
# 7. V8 的 TurboFan 优化触发条件(热点函数、类型稳定性) A TurboFan 对每个函数都做深度优化 B 类型反馈只影响解释器 C 去优化与性能无关 D TurboFan 按调用热度与类型反馈做专业化优化,类型不稳定会触发去优化循环,保持单态是工程关键 ✓ 正确答案
# 8. V8 垃圾回收(Orinoco、Scavenge、Mark-Sweep、Mark-Compact、并发标记、增量压缩) A V8 只有一个 GC 阶段 B 新生代 GC 停顿时间很长 C Mark-Compact 不会产生碎片 D V8 分新生代(Scavenge 复制)与老生代(Mark-Sweep/Compact),Orinoco 以并发标记与增量压缩缩短主线程停顿 ✓ 正确答案
# 9. V8 的解释执行、JIT 编译、隐藏类与内联缓存 A 属性访问总是动态查找 B 动态添加属性不影响性能 C 隐藏类固化对象形态、内联缓存记忆访问类型,JIT 基于反馈优化,对象形态稳定是性能关键 ✓ 正确答案 D 解释器永远比 JIT 快
# 10. V8 GC Minor/Major/Incremental 在团队规范与可维护性 A GC 行为与团队规范无关 B Minor/Major/Incremental 的特征应映射为分配纪律、缓存有界与生命周期清理规范,并以 GC 观测和内存回归作门禁 ✓ 正确答案 C Major GC 不需要治理 D 内存观测无法自动化
# 11. 滚动事件节流与 Scroll-Linked Animations 在主线程释放的工程价值 A Scroll-Linked Animations 由合成器线程驱动(transform/opacity),配合节流与 Observer,释放滚动场景主线程 ✓ 正确答案 B 滚动动画必须逐帧用 JS 计算 C 滚动事件处理不需要优化 D 滚动驱动动画在所有浏览器原生支持
# 12. WebAssembly 与 V8 的 Liftoff/TurboFan 多层编译策略的工程价值 A WASM 只能全量深度编译 B Liftoff 比 TurboFan 峰值性能更高 C WASM 编译没有分层 D Liftoff 快速基线编译实现快启动,TurboFan 对热点深度优化达峰值性能,WASM 分层按热度分配 ✓ 正确答案
# 13. IntersectionObserver 的 rootMargin 与渲染节流的协作 A rootMargin 改变元素的真实可见性 B 懒加载不能用 IntersectionObserver C rootMargin 越大越省资源 D rootMargin 扩展观察范围提供加载/渲染提前量,按资源成本调优,与 content-visibility 组合节流 ✓ 正确答案
# 14. 连续微任务阻塞绘制的原因与缓解 A 微任务只会在所有宏任务执行完后才执行一次 B 增加微任务数量可以提升动画流畅度 C 微任务与渲染完全无关,不会影响任何帧率 D 连续微任务会阻塞渲染,因为渲染发生在宏任务边界,微任务队列不清空则无法推进到渲染 ✓ 正确答案
# 15. requestAnimationFrame、requestIdleCallback、Scheduler API 的渲染时机分工 A requestAnimationFrame 在每帧绘制之后执行,适合做计算 B requestIdleCallback 在浏览器空闲时执行低优先级可中断任务,rAF 在渲染前同步视觉更新,Scheduler API 按优先级显式调度 ✓ 正确答案 C Scheduler API 与普通 setTimeout 完全等价 D requestIdleCallback 在每帧渲染前严格固定执行
# 16. 浏览器 IntersectionObserver/ResizeObserver/MutationObserver 在渲染时机的工程取舍 A 三种 Observer 都在同步阶段立即触发回调 B MutationObserver 回调在宏任务阶段执行,不会影响渲染 C ResizeObserver 只能监听 window 的尺寸变化 D IO 处理可见性、RO 处理尺寸变化、MO 处理 DOM 变化,回调应轻量并把渲染交给下一帧 ✓ 正确答案
# 17. requestAnimationFrame 与 scheduler.yield 在主任务让步的现代取舍 A scheduler.yield 只能在帧边界让出主线程 B rAF 绑定帧边界适合视觉同步,scheduler.yield 按优先级让出且可恢复,适合长任务切分 ✓ 正确答案 C requestAnimationFrame 与 scheduler.yield 是完全等价的 API D scheduler.yield 会永久阻塞主线程
# 18. LCP/INP/CLS 的定义、阈值(Good/Needs Improvement/Poor)与各自优化手段的工程矩阵 A LCP Good ≤2.5s、INP Good ≤200ms、CLS Good ≤0.1,均取 p75 分位数,并各有针对性优化手段 ✓ 正确答案 B LCP 的 Good 阈值是 ≤500ms C CLS 的 Good 阈值是 ≤0.5 D INP 的 Poor 阈值是 >1000ms
# 19. web-vitals 库的 onCLS/onINP/onLCP 上报时机、归因(attribution)字段与目标页面识别(pageId) A onLCP 在页面加载一开始就上报中间值 B attribution 构建会显著减小包体积 C web-vitals 在指标最终确定后上报,attribution 提供元素/资源/来源归因,pageId 用于区分目标页面 ✓ 正确答案 D pageId 只能用于服务端渲染页面
# 20. PerformanceObserver 与 Long Animation Frames API(LoAF)在长任务诊断与交互延迟归因的工程应用 A LoAF 只报告脚本总时长,无法区分来源 B LoAF 与 INP 完全无关 C longtask 条目只在上报时一次性生成 D PerformanceObserver 观察 LoAF 条目,LoAF 提供 duration/scripts 分段归因,可结合 INP 定位阻塞交互的主线程来源 ✓ 正确答案
# 21. RUM(真实用户监控)与合成监测(Synthetic/Lighthouse)的数据偏差与互补关系 A RUM 数据完全可控且无噪声 B 合成监测结果可复现便于回归,RUM 反映真实用户分布,二者互补构成 Lab 定位 + Field 验证闭环 ✓ 正确答案 C Lighthouse 结果能直接代表所有真实用户 D RUM 与合成监测之间不存在任何偏差
# 22. 浏览器的分层、合成器线程与 will-change/transform 提升到独立图层的工程价值 A transform/opacity 动画必须在主线程重新绘制 B will-change 可以无限使用而不消耗内存 C 浏览器把页面拆为图层由合成器线程合成,transform/opacity 等合成属性动画不必重绘,will-change 可提前提升图层但需警惕内存与图层爆炸 ✓ 正确答案 D 所有元素都应默认提升为独立图层
# 23. Server Timing API 在 CDN/后端响应时间透传与前端性能端到端关联的工程落地 A 服务器通过 Server-Timing 响应头透传后端各阶段耗时,前端可关联 TTFB 定位是网络、CDN 还是后端导致的慢 ✓ 正确答案 B Server Timing API 只能看到 CDN 的缓存命中率 C Server Timing 数据无法被浏览器读取 D Server-Timing 头不能包含任何性能数据
# 24. INP 问题的监控-定位-治理闭环,LoAF attribution 到代码级的诊断流程与优化验证 A INP 治理只需关注数值,无需定位到代码 B 优化 INP 后无需回归验证 C LoAF 无法区分第一方与第三方脚本 D INP 治理闭环是监控采集 + LoAF attribution 代码级定位 + 优化治理 + 验证固化,归因字段让样本可反查根因 ✓ 正确答案
# 25. web-vitals 的 attribution build 与未 attribution build 的体积差异与功能取舍 A attribution build 额外提供元素/资源/来源等归因字段但体积更大,生产按需启用以平衡开销与可观测性 ✓ 正确答案 B attribution build 比基本 build 更小 C 两种构建功能完全一致 D 基本 build 无法上报任何数值
# 26. 浏览器同源策略的执行边界,哪些行为被限制(读取跨源响应、DOM 访问),哪些被允许(嵌入 script/img/iframe 发起请求) A 同源策略禁止一切跨源请求 B 同源策略限制跨源读取响应与 DOM 访问,但允许嵌入 script/img/iframe 加载执行并发起请求 ✓ 正确答案 C 跨源 iframe 可以自由访问父页面 DOM D 同源策略只限制 Cookie,不限制其他资源
# 27. 浏览器对 CSP 的解析与拦截时机(script-src/nonce/strict-dynamic 的生效方式),以及 report-only 模式与强制模式的区别 A CSP 只在资源加载完成后才检查 B Report-Only 模式会拦截所有违规脚本 C nonce 与 strict-dynamic 完全互斥 D CSP 在资源加载/执行前解析拦截,strict-dynamic 让 nonce 信任的脚本动态加载也受信,Report-Only 只报告不拦截而强制模式才拦截 ✓ 正确答案
# 28. 浏览器对 Cookie SameSite(Strict/Lax/None)的强制执行机制,及其对跨站请求自动携带凭证的影响 A SameSite=None 的 Cookie 不需要 Secure B Lax 模式下所有跨站请求都不发送 Cookie C SameSite 只影响同站请求 D SameSite 控制跨站请求是否携带 Cookie,Strict 全不发送、Lax 默认平衡安全与体验、None 跨站发送但需 Secure,是 CSRF 防御关键 ✓ 正确答案
# 29. 从浏览器解析管线看 XSS 三类(存储/反射/DOM 型)的注入点与触发时机差异 A 三类 XSS 都在服务端触发 B DOM 型 XSS 会经过服务端拼接 C 存储型存于数据源、反射型经请求参数反射、DOM 型在客户端 DOM 写入时执行,注入点与解析上下文决定触发时机与防御侧重 ✓ 正确答案 D 反射型 XSS 不依赖用户点击
# 30. Long Task 与渲染中断对 INP 的影响 A 长任务阻塞主线程、延迟输入处理与绘制,拆分长任务与降载可降低 INP ✓ 正确答案 B 长任务只影响网络请求,不影响 INP C 渲染中断与长任务无关 D INP 只关注输入事件,不关注渲染
# 31. Layout Thrashing(强制同步布局)的成因与 fastdom 治理 A 读取布局属性绝不会触发布局 B Layout Thrashing 源于读写交替触发多次强制同步布局,fastdom 通过批量调度读写在帧内合并布局 ✓ 正确答案 C 强制同步布局是无害的 D fastdom 会增加布局次数
# 32. 图层爆炸(Layer Explosion)的诱因与 will-change 治理 A 图层爆炸源于过多独立合成层造成内存与合成开销,will-change 应只对确需动画的元素使用并在动画后移除 ✓ 正确答案 B 图层数量越多性能越好 C will-change 可以无限使用 D 图层爆炸只影响首屏加载
# 33. V8 内存压缩指针 在性能优化与 GC 压力的取舍 A 压缩指针会增大对象引用占用 B 压缩指针把地址压缩为 32 位减少内存、提升缓存并缓解 GC 压力,但受约 4GB 堆上限约束 ✓ 正确答案 C 压缩指针无任何限制 D 压缩指针与 GC 无关
# 34. 布局属性、绘制属性与合成属性的性能差异 A 所有 CSS 属性触发相同开销 B transform 动画会触发布局 C 布局属性触发重排、绘制属性触发重绘、合成属性(transform/opacity)只走合成器,动画优先用合成属性最流畅 ✓ 正确答案 D opacity 动画需要主线程重绘
# 35. DOM/CSSOM 构建、样式计算、布局、绘制、光栅化、合成的完整流水线 A 完整流水线是 DOM/CSSOM 构建→样式计算→布局→绘制→光栅化→合成,属性变化决定从哪一阶段重新开始 ✓ 正确答案 B 渲染流水线从光栅化开始 C 布局与绘制在 GPU 线程完成 D 合成属性变化需要重新解析 HTML
# 36. Transfer Size 在现代前端项目的工程价值 A Transfer Size 是资源的解压后大小 B Transfer Size 指实际传输的压缩后字节数,直接影响网络耗时与 LCP,应作为性能预算与监控指标 ✓ 正确答案 C Transfer Size 与 TTFB 无关 D 压缩对 Transfer Size 毫无影响
# 37. Compositor-only 属性(transform/opacity) A transform/opacity 动画会触发主线程重排 B 合成属性动画无法使用 GPU C opacity 动画必须重新绘制 D transform/opacity 是 compositor-only 属性,动画只走合成器与 GPU,不触发布局/绘制,从而保持流畅 ✓ 正确答案
# 38. position: sticky 的容器边界与父级 overflow 失效条件 A sticky 元素可以脱离父级任意粘性 B sticky 与父级高度无关 C overflow 设置对 sticky 无任何影响 D sticky 相对最近滚动容器粘性,父级高度决定范围,祖先 overflow 非 visible 会成为滚动容器导致失效 ✓ 正确答案
# 39. 跨域 iframe 的 Site Isolation 与渲染边界 A Site Isolation 把跨站 iframe 放进独立进程,增强安全隔离但增加进程与内存开销,跨源只能 postMessage 通信 ✓ 正确答案 B Site Isolation 让所有页面共享一个进程 C 跨域 iframe 可以访问父页面 DOM D Site Isolation 只影响缓存
# 40. CSS Containment(contain: layout/paint/size)的隔离与性能收益 A contain: layout 会放大对外部的布局影响 B CSS Containment 把子树渲染隔离,contain: layout/paint/size 分别隔离布局、绘制、尺寸,减少重排传播提升性能 ✓ 正确答案 C contain 只影响样式计算 D contain: size 会让元素尺寸依赖内容
# 41. V8 字节码解释器 Ignition 与 Sparkplug 的协作机制 A Ignition 与 Sparkplug 没有任何关系 B Sparkplug 直接优化编译热点函数 C Ignition 是字节码解释器负责快速启动,Sparkplug 是基线编译器从字节码生成机器码,配合优化编译器形成渐进升级的 tier 架构 ✓ 正确答案 D V8 只使用解释器不编译
# 42. Weak Ref 与 Finalization Registry 在 V8 GC 的暂停与调度策略 A WeakRef 会阻止对象被回收 B WeakRef 与 FinalizationRegistry 等价 C FinalizationRegistry 回调同步执行 D WeakRef 弱引用不阻止回收,FinalizationRegistry 在对象被 GC 后调度回调,回调时机不可控,不应依赖其做确定性清理 ✓ 正确答案
# 43. JIT 优化中的去优化(Deoptimization)触发场景 A 去优化会让代码执行更快 B 去优化与类型无关 C 去优化是优化代码在类型变化、隐藏类破坏等场景失效回退到解释执行,会造成性能抖动,应保持类型与对象形状稳定 ✓ 正确答案 D 去优化不会影响性能
# 44. 对象晋升(Promotion)到老生代的判别与堆统计 A 新生代对象在 Scavenge 中存活达到阈值或空间不足时晋升老生代,通过堆快照可分析晋升与堆分布 ✓ 正确答案 B 对象晋升后仍在新生代 C 晋升与 GC 无关 D 所有对象永不晋升
# 45. V8 的 WebAssembly 编译管线与多线程优化能力 A Wasm 只有一个编译层级 B Wasm 无法使用多线程 C V8 用 Liftoff 基线 + TurboFan 优化编译 Wasm,支持多线程编译与运行,可并行处理 CPU 密集型任务 ✓ 正确答案 D Wasm 线性内存由 GC 管理对象图
# 46. TurboFan、Sparkplug、Maglev 各阶段的优化目标 A 三层编译器优化程度相同 B Maglev 是最顶级优化编译器 C TurboFan 编译最快 D Sparkplug 基线编译、Maglev 中级优化、TurboFan 顶级优化,编译成本与优化程度逐级递增,依据热度和 feedback 逐级升级 ✓ 正确答案
# 47. Mark-Compact 算法在 V8 老生代内存回收的工程实践 A Mark-Sweep 不会产生碎片 B Mark-Compact 从不移动对象 C Mark-Sweep 清除产生碎片,Mark-Compact 移动存活对象消除碎片,配合并发标记与增量压缩控制停顿,需留意老生代膨胀与碎片 ✓ 正确答案 D 老生代不使用标记算法
# 48. V8 的内存泄漏常见模式(闭包、全局变量、定时器、Detached DOM) A 闭包不会导致内存泄漏 B Detached DOM 永远被回收 C 闭包捕获外部作用域、全局变量累积、定时器未清理、Detached DOM 被引用都会导致内存泄漏,需用堆快照对比排查 ✓ 正确答案 D 定时器不会持有对象
# 49. WebAssembly 与 V8 引擎的协作(线性内存、垃圾回收的边界) A Wasm 线性内存与 JS 堆共享同一 GC B Wasm 线性内存与 JS 堆分离,Wasm 本身无 GC 由模块显式管理内存,通过 TypedArray 与函数与 JS 互操作 ✓ 正确答案 C Wasm 只能调用自身函数 D Wasm 内存由 JS GC 自动管理
# 50. V8 引擎的 cause 属性在堆栈捕获错误链路的应用 A cause 属性丢弃底层错误 B cause 属性只能用于同步错误 C Error 的 cause 属性在包装错误时保留原始错误,通过 cause 链还原根因,配合结构化上报提升排障效率 ✓ 正确答案 D cause 属性与堆栈无关
# 51. gc() 函数(仅暴露给 V8 内部)在内存压力测试的应用 A gc() 通过 --expose-gc 暴露并强制触发 GC,用于内存压力测试与泄漏检测,对比 GC 前后堆用量发现持续增长 ✓ 正确答案 B gc() 在浏览器中默认可用 C gc() 无法用于内存测试 D gc() 会降低内存使用率
# 52. V8 的堆快照(Heap Snapshot)与 chrome://inspect 在内存分析的应用 A 堆快照无法显示引用关系 B chrome://inspect 无法分析内存 C 堆快照捕获对象与引用关系,配合 Comparison 对比与 chrome://inspect 远程调试定位持续增长的未释放对象 ✓ 正确答案 D 堆快照只能用于浏览器
# 53. V8 的 Promise Hooks 在异步追踪与 APM 工具的集成 A Promise Hooks 无法捕获异步操作 B Promise Hooks 捕获 Promise 生命周期做异步上下文传播,APM 工具据此关联异步操作与错误,实现端到端追踪 ✓ 正确答案 C async_hooks 与异步追踪无关 D 异步追踪无任何性能开销
# 54. V8 的 async stack traces(Error.captureStackTrace)在调试的工程价值 A async stack traces 无法追溯异步上下文 B captureStackTrace 不能过滤内部帧 C 异步错误没有堆栈 D Error.captureStackTrace 定制堆栈,async stack traces 让异步错误保留调用链,提升异步代码调试与根因定位 ✓ 正确答案
# 55. V8 的 Sparkplug 编译器(baseline tier) A Sparkplug 是基线编译器,从字节码快速生成机器码、开销小、优化程度低,作为解释与优化之间的中间层 ✓ 正确答案 B Sparkplug 是 V8 的深度优化编译器 C Sparkplug 编译比解释器还慢 D Sparkplug 直接处理 AST
# 56. V8 的字节码解释器(Ignition)与 TurboFan 的协作在内存与启动的取舍 A 全量优化编译能提升启动速度 B TurboFan 比解释器启动更快 C Ignition 解释字节码启动快内存低,TurboFan 优化编译执行快但开销大,按函数热度渐进升级在启动与峰值性能间平衡 ✓ 正确答案 D 解释器与优化编译互斥
# 57. requestIdleCallback 在低优先级后台任务的应用与 polyfill(scheduler-polyfill) A requestIdleCallback 在空闲期执行低优先级可中断任务,scheduler-polyfill 提供跨浏览器兼容,需配合 timeout 兜底 ✓ 正确答案 B rIC 会强制在空闲期执行所有任务 C rIC 任务优先级最高 D scheduler-polyfill 无法模拟空闲调度
# 58. Long Tasks(>50ms)对 INP 的影响与切片策略 A 长任务只影响网络性能 B INP 与主线程阻塞无关 C 长任务不影响输入处理 D 长任务(>50ms)阻塞主线程推高 INP,通过时间切片、scheduler.yield、Worker 拆分可降低交互延迟 ✓ 正确答案
# 59. document.timeline.currentTime 与 CSS 动画时间轴对齐的工程价值 A document.timeline 与动画无关 B document.timeline.currentTime 是文档动画时间轴参考,与 CSS 动画/WAAPI 一致,用于 JS 与动画时间对齐 ✓ 正确答案 C currentTime 返回的是系统时钟 D 动画时间轴无法被 JS 读取
# 60. requestIdleCallback 在兼容性与 polyfill 的现代工程取舍 A rIC 在各大浏览器都默认支持 B polyfill 能精确模拟空闲 C rIC 支持有限且语义不保证,polyfill 精度有限,可优先用 Scheduler API 替代并设计任务为可延后可丢弃 ✓ 正确答案 D rIC 保证每次都在空闲期执行
# 61. Chrome 的 Priority Hints(fetchpriority)对关键资源加载的优先调度 A fetchpriority 只对图片生效 B fetchpriority 会强制立即加载所有资源 C fetchpriority 显式声明资源优先级(high/low/auto)影响加载调度,与 preload 配合优化关键资源加载,但需谨慎使用 ✓ 正确答案 D preload 与 fetchpriority 完全无关
# 62. 浏览器后台节流对定时器与 rAF 的精度影响 A 后台标签页定时器精度不受影响 B 后台节流只影响动画不影响定时器 C rAF 在后台仍持续触发 D 后台标签页定时器被节流放大、rAF 暂停,后台任务可用 Worker 或 performance.now() 规避精度问题 ✓ 正确答案
# 63. CLS 的 session window 算法与 layout shift clusters 在分数计算中的边界(最大 5s 窗口/1s gap) A CLS 是所有偏移量之和 B CLS 只统计一次偏移 C CLS 用 session window 聚合偏移,最大 5s 窗口、偏移间隔超 1s 分新窗口,取最大窗口作为 CLS,关键是减少单窗口内偏移量 ✓ 正确答案 D 窗口边界对 CLS 无影响
# 64. INP 的 Input Delay/Processing Time/Presentation Delay 三段拆解与针对性优化路径 A INP 只有一段不可拆分 B INP 拆为输入延迟、处理时长、呈现延迟,各有针对性优化(减阻塞、精简回调、减渲染),先测各段占比再重点优化 ✓ 正确答案 C 优化 INP 只需减少网络请求 D 三段对 INP 无影响
# 65. Web Vitals 与业务指标(转化率/留存)的关联分析方法,性能分数与商业价值的因果推断 A 关联分析需用分组对比、A/B 与控制变量做因果推断,识别混淆变量,避免相关性误判为因果 ✓ 正确答案 B 性能好转转换率一定高 C 相关性等同因果 D 性能与业务指标完全无关
# 66. 点击劫持的浏览器机制,X-Frame-Options 与 CSP frame-ancestors 的优先级与覆盖关系 A 点击劫持用透明 iframe 覆盖诱骗点击,CSP frame-ancestors 优先于 X-Frame-Options,二者都限制页面被嵌入 ✓ 正确答案 B X-Frame-Options 永远优先于 CSP C 点击劫持与 iframe 无关 D frame-ancestors 无法防御点击劫持
# 67. 浏览器 CORS 预检(preflight)的触发条件与 Access-Control-Max-Age 缓存机制 A 所有跨源请求都触发预检 B Max-Age 缓存的是实际响应 C 简单请求也触发预检 D 非简单请求(自定义头/非简单方法)触发 OPTIONS 预检,Access-Control-Max-Age 缓存预检结果减少重复预检 ✓ 正确答案
# 68. 浏览器在 HTML 不同上下文(标签体、属性、script 块)解析注入内容的差异,与 Trusted Types 强制 sink 校验的机制 A 标签体/属性/script 上下文注入语义不同需按上下文编码,Trusted Types 强制 sink 校验拒绝不可信字符串进 DOM ✓ 正确答案 B 所有 HTML 上下文注入编码方式相同 C Trusted Types 只影响样式 D 属性上下文无需转义
# 69. V8 的 super 属性访问在内联缓存(IC)的工程性能差异 A super 访问与普通属性访问 IC 完全一致 B super 访问不经过内联缓存 C super 访问性能总是更高 D super 属性访问沿原型链查找,其 IC 处理与普通属性访问不同、性能可能略低,热路径可考虑直接引用 ✓ 正确答案
# 70. V8 的字符串优化(Sliced String、ConsString、SeqString) A 所有字符串都立即复制存储 B V8 字符串只有一种表示 C 字符串拼接总是最慢的 D ConsString 惰性拼接、Sliced String 惰性切片避免重复复制,SeqString 是扁平存储,优化了拼接与切片性能 ✓ 正确答案
# 71. V8 的 Map(hidden class)在对象创建顺序敏感性的工程实践 A 对象属性顺序不影响优化 B 动态增删属性会提升性能 C V8 用 hidden class 记录对象形状,属性创建顺序影响形状与 IC 缓存,保持对象创建一致可提升性能 ✓ 正确答案 D hidden class 与优化无关
# 72. V8 的 BigInt 与 Number 在算术运算时的隐式转换边界 A 1n + 1 可直接计算 B BigInt 运算自动转 Number C BigInt 与 Number 完全等价 D BigInt 与 Number 混合算术会抛 TypeError,需显式转换并注意精度,避免隐式转换丢精度 ✓ 正确答案
# 73. WebAssembly GC(垃圾回收扩展提案)在跨语言内存管理的现代进展 A Wasm GC 提案让所有语言都必须用线性内存 B Wasm GC 提案引入可 GC 对象类型,支持多语言直接编译到 Wasm 并改善与 JS 的互操作,减少手动内存管理 ✓ 正确答案 C Wasm GC 与 JS GC 完全无关 D Wasm 无法创建对象
# 74. V8 的 Code Caching(代码缓存)在二次访问首屏加载的性能收益 A 代码缓存无法复用编译结果 B V8 代码缓存复用脚本编译产物,二次访问跳过解析编译加速启动,命中率受脚本版本与缓存策略影响 ✓ 正确答案 C 代码缓存只对首次访问有效 D 代码缓存会降低加载速度
# 75. scheduler.postTask({ priority: user-blocking }) 优先级队列的工程价值 A postTask 不区分优先级 B background 优先级最高 C scheduler.postTask 用 user-blocking/user-visible/background 优先队列调度,关键任务优先、非关键降级,优化交互与主线程 ✓ 正确答案 D postTask 无法调度任务
# 76. Element Timing API 在自定义 LCP 元素标记与 RUM 归因的工程边界 A Element Timing 可以标记任何元素为 LCP B Element Timing 只统计资源加载 C Element Timing 无法被浏览器读取 D Element Timing 通过 elementtiming 属性标记自定义元素做 LCP 归因,但覆盖渲染时间且需元素带 id,是辅助归因而非替代浏览器判定 ✓ 正确答案
# 77. First Input Delay(FID)被 INP 替代的历史原因与旧版数据兼容性处理 A FID 与 INP 完全等价 B FID 覆盖处理时长 C INP 只测首次输入 D FID 只测首次输入延迟,INP 覆盖所有交互的完整响应性,替代后需注意口径差异并平滑迁移旧数据 ✓ 正确答案
# 78. 浏览器存储分区(Storage Partitioning)对第三方 Cookie、缓存与 IndexedDB 在跨站上下文下的隔离行为 A 存储分区按顶级站点隔离第三方 Cookie、缓存与 IndexedDB,防止跨站关联,增强隐私但需适配嵌入应用 ✓ 正确答案 B 存储分区让第三方存储跨站共享 C 存储分区只影响 IndexedDB D 第三方 Cookie 不受分区影响