# 1. JS 与 WASM 互操作(WebAssembly.instantiate/instantiateStreaming、导入导出) A 它只能编译已经下载完成的 ArrayBuffer B 它直接接收 fetch 的 Response,可在下载的同时流式编译,更快 ✓ 正确答案 C 它不支持导入 JS 函数 D 它必须在 Worker 中才能使用
# 2. Reference Types、GC 提案、Exception Handling、Threads、MEM64、SIMD A 它让 JS 可以编译成 WASM B 它为 WASM 引入 structref/arrayref 等托管类型,使带 GC 的语言可高效编译且无需自带 GC ✓ 正确答案 C 它取代了 SIMD 提案 D 它只作用于 WASI 服务端环境
# 3. WASM SIMD 的 128 位向量 在跨语言互操作(JS/TS/Rust/C++) A JS 可以直接把 v128 向量作为函数参数传入 B SIMD 只能用于整数运算 C v128 向量数据通常经线性内存传递,JS 通过 TypedArray 视图读写 ✓ 正确答案 D Rust 无法编译出 SIMD 指令
# 4. WASM 线程(memory + SharedArrayBuffer + Atomics) A 每个线程独立持有自己的线性内存 B 各线程共享同一 Memory(SharedArrayBuffer),用 Atomics 原语同步 ✓ 正确答案 C 启用 WASM 线程不需要任何响应头 D 主线程可以安全地调用 Atomics.wait 阻塞等待
# 5. WASM SIMD(pmslq 等)在大数据图像/3D 处理的工程价值 A 提升网络传输速度 B 只能加速整数运算 C 替代浏览器内置解码器 D 用单指令多数据并行加速像素级计算,明显提升处理吞吐 ✓ 正确答案
# 6. AssemblyScript/TypeScript → WASM 编译器在已有 TS 代码迁移的工程价值 A 它是 TS 子集编译器,适合把数值计算热点迁移到 WASM,但语法与生态有限 ✓ 正确答案 B 它支持完整的 TypeScript 语法与 npm 生态 C 它必须依赖 Rust 工具链 D 它生成的是 JavaScript 代码而非 WASM
# 7. wasm-bindgen(Rust)与 embind(C++) A 二者都只能绑定 C++ 代码 B wasm-bindgen 用于 Rust→JS 绑定,embind 用于 C++→JS 绑定,分别生成胶水与代理代码 ✓ 正确答案 C embind 不能暴露 C++ 类给 JS D wasm-bindgen 无法生成 TypeScript 类型
# 8. 编译到 WASM(C/C++ Emscripten、Rust wasm-pack/wasm-bindgen、AssemblyScript、Go/tinygo) A Rust 通过 Emscripten 编译到 WASM B 只有 C/C++ 能编译到 WASM C C/C++ 用 Emscripten,Rust 用 wasm-pack/wasm-bindgen,AssemblyScript 与 Go 各有独立工具链 ✓ 正确答案 D Go 的 WASM 产物与原生性能完全一致
# 9. WASM Component Model 在多语言模块组合的工程价值 A 让 WASM 运行速度更快 B 替代 JavaScript 语言本身 C 用 WIT 接口实现跨语言组件的组合与版本化互操作 ✓ 正确答案 D 统一所有浏览器的渲染引擎
# 10. WASI Preview 1/2 在服务端 WASM 函数(Fastly Compute、wasmCloud、Lambdalith) A WASI 只用于浏览器内 B WASI 通过标准化系统接口让同一 WASM 组件可在 Fastly Compute、wasmCloud 等平台运行,Preview 2 引入 wasi-http 等标准接口 ✓ 正确答案 C WASI 组件无法访问任何系统能力 D Lambdalith 是浏览器渲染方案
# 11. WASM 文本格式(WAT)在 JIT 编译与冷启动的工程价值 A WAT 是运行时直接执行的指令集 B 浏览器只支持 WAT 不支持二进制格式 C WAT 是可读文本格式,用于调试与工具链处理,冷启动优势来自流式编译与编译缓存 ✓ 正确答案 D WAT 无法转回二进制格式
# 12. WASI HTTP(wasi-http)在边缘函数的能力边界 A 它可以直接控制 TCP 连接与 TLS 握手 B 它不允许返回流式响应体 C 它只能在浏览器中运行 D 它提供标准 HTTP 请求/响应接口并支持流式与能力安全,但无法覆盖 WebSocket 等非 HTTP 协议语义 ✓ 正确答案
# 13. WASI Preview 3 在 Memory/性能/调试的工程价值 A 它仍然依赖 Preview 1 的 argv 启动模型 B 它只能用于浏览器环境 C 它不支持 WIT 接口 D 它以组件 ABI 为原生目标,采用非阻塞 async 与资源句柄,减少内存拷贝并改善调试 ✓ 正确答案
# 14. wasm-bindgen 的 JS interop 与 WASM Threads/GC 的现代取舍 A 热路径数据应尽量经 JS 对象逐次互操作 B 热路径数据走线性内存/共享内存,低频交互用 wasm-bindgen 绑定,并评估 GC 提案的运行时成本 ✓ 正确答案 C GC 提案完全取代 wasm-bindgen D 多线程下无需考虑句柄安全
# 15. 服务端 WASM(Cloudflare Workers、Fastly Compute@Edge、Akamai EdgeWorkers、Wasmtime、Wasmer、WasmEdge) A Wasmtime 是托管边缘平台 B WasmEdge 无法用于云原生场景 C 边缘平台可以运行任意系统调用 D Cloudflare Workers 等边缘平台提供托管分发,Wasmtime/Wasmer 等是通用嵌入运行时,编写符合 WASI 的代码可保持可移植 ✓ 正确答案
# 16. WASI Preview 2(WASI 0.2 引入 wasi-cli、wasi-http) A 它完全废弃了 HTTP 接口 B 它仍然使用 errno 整数编码错误 C 它用 WIT 定义 wasi-cli、wasi-http 等模块化接口,并提供 Preview 1 兼容 shim 路径 ✓ 正确答案 D 它只能在浏览器中运行
# 17. WASM 组件模型(Component Model)与 WIT 的多语言互操作 A JSON Schema B C 头文件 C WIT 接口定义,配合 wit-bindgen 生成各语言绑定与标准 ABI 传值 ✓ 正确答案 D gRPC proto
# 18. WASM Multi-Memory 与多 buffer 在 SSR/Worker 多环境的协作 A 提升单内存的访问速度 B 允许模块声明多个线性内存,用于隔离数据区并在 Worker/SSR 环境间高效协作传输 ✓ 正确答案 C 替代 WebAssembly.Global D 减少 WASM 文件体积
# 19. WebAssembly 的 MVP 与 Post-MVP 提案(SIMD、Threads、GC) A Post-MVP 完全推翻了 MVP 的设计 B MVP 已包含多线程支持 C MVP 提供单一线性内存与基础数值计算,SIMD/Threads/GC 等以独立提案演进,生产中需特性检测与降级 ✓ 正确答案 D 所有 Post-MVP 提案必须一起发布
# 20. WebAssembly 的 Interface Types 在多语言互操作的现代应用 A 让 WASM 直接操作 DOM B 替代 WebAssembly.Memory C 作为组件模型的类型基础,用 WIT 描述字符串、资源、流等类型并经 canonical ABI 跨语言传值 ✓ 正确答案 D 只用于 GPU 计算
# 21. WebAssembly 的 SIMD(单指令多数据)在图像处理与 ML 的工程应用 A 只能加速字符串操作 B 必须配合 WebGL 才能生效 C 对逐像素/张量等数据并行运算向量化加速,并与 Worker、WebGPU 分层组合 ✓ 正确答案 D 只能运行在服务端
# 22. WASM 内存模型(线性内存 + memory.grow)与 JS 堆边界在性能与调试的工程价值 A JS 可以直接引用 WASM 内存中的对象而无需拷贝 B 线性内存是连续字节数组,JS 用 TypedArray 视图零拷贝共享,memory.grow 扩容后原视图可能失效 ✓ 正确答案 C memory.grow 失败时抛出异常 D 线性内存受 GC 管理
# 23. WebAssembly 的 reference types(externref) A WASM 可以直接读取 externref 指向的 JS 对象内部字段 B 只有 C++ 模块能使用 externref C externref 与数字类型可以任意混用计算 D externref 是宿主对象的不透明句柄,可存储与传递但不可解引用,用于免拷贝互操作 ✓ 正确答案
# 24. WebAssembly 的 tail calls 在递归函数编译的工程价值 A 提升所有函数的执行速度 B 通过 return_call 复用栈帧实现确定性尾调用优化,使深递归不溢出并利于函数式语言编译 ✓ 正确答案 C 替代 GC 提案 D 只影响 WebGPU 计算
# 25. WebAssembly 的 bulk memory operations 在批量内存复制的工程价值 A 只能加速字符串操作 B 替代 SharedArrayBuffer C 以单条 memory.copy/fill/init 指令替代手动循环,提升批量复制性能并配合 data.drop 降低内存占用 ✓ 正确答案 D 只对服务端运行时生效
# 26. WebAssembly 的 exception handling 提案在错误处理的现代应用 A 让所有 WASM 函数自动拥有错误码 B 只用于 WebGPU 错误处理 C 替代 JavaScript 的 try/catch D 用 tag 与 try_table 表达异常,支持 C++/Rust 异常语义并可跨 JS/WASM 边界传播 ✓ 正确答案
# 27. WebAssembly 的 memory64(>4GB)在大型数据集的工程应用 A 浏览器普遍默认启用 memory64 B memory64 会让所有程序运行更快 C memory64 与 Multi-Memory 是同一提案 D memory64 用 i64 地址突破 4GB 上限,适合服务端大内存场景,但 32/64 位内存不能混用且有寻址开销 ✓ 正确答案
# 28. WebAssembly 的 relaxed SIMD 在性能与兼容性的工程取舍 A 允许部分指令实现定义结果以换取引擎最高效实现,性能提升但跨引擎数值可能略有差异 ✓ 正确答案 B 完全放弃浮点计算 C 只支持整数运算 D 所有引擎结果严格一致
# 29. WebAssembly 的 typed function references 在函数签名类型的工程价值 A 只能用于 WebGPU 着色器 B 取代了所有内存操作 C 为函数引用赋予具体签名类型,支持 call_ref 直接调用,提升类型安全与分派性能 ✓ 正确答案 D 禁止函数指针
# 30. WASM GC 的 structref、arrayref 与类型化函数引用如何改变 Kotlin/Dart 等 GC 语言在浏览器中的对象布局 A 让 GC 语言无法编译到 WASM B 与函数调用完全无关 C 只能用在线性内存中 D 直接映射类/数组/方法表布局,由引擎 GC 托管对象,省去自带 GC 与手工盒化 ✓ 正确答案
# 31. 数据传递性能与字符串传递优化 A 每个字符串单独调用一次导出函数 B 统一使用 UTF-16 编码的内存 C 合并调用并复用内存缓冲,必要时用 UTF-8 视图与零拷贝路径减少转换与拷贝 ✓ 正确答案 D 禁止传递字符串
# 32. 线性内存模型与 SharedArrayBuffer + COOP/COEP 的启用 A 任何页面默认可用 B 服务器返回 COOP: same-origin 与 COEP: require-corp 使页面处于跨源隔离状态 ✓ 正确答案 C 必须使用 HTTPS 且无任何跨源资源 D 只在移动端需要
# 33. WASM 字节码验证与安全性边界 A 验证与运行时边界检查提供内存安全沙箱,但恶意逻辑、宿主导入漏洞与资源耗尽仍需防御 ✓ 正确答案 B 验证器保证模块绝不会消耗过多 CPU C WASM 模块可以直接访问系统文件 D 验证器会执行模块代码
# 34. Emscripten Embind 与 napi-rs 在 C++/Rust ↔ JS 的工程取舍 A Embind 用于 Node 原生模块 B 浏览器场景用 Embind(WASM),Node 高性能场景用 napi-rs(原生插件),可共享核心逻辑双路径复用 ✓ 正确答案 C napi-rs 只能编译为 WASM D Embind 无法绑定 C++ 类
# 35. -target=wasm32-unknown-unknown 编译目标在工具链的工程取舍 A 包含完整的 WASI 系统接口 B 不链接系统接口,适合与 wasm-bindgen 配合产出浏览器计算模块,服务端能力需 JS 注入 ✓ 正确答案 C 只能编译 C 代码 D 产物必须运行在 Wasmtime 中
# 36. BigInt 与 i64 的边界处理 A 用 Number 直接传递,运行时自动截断 B i64 无法跨边界传递 C 使用 BigInt 传参/接收,兼容场景可拆分为两个 i32 或字符串传递 ✓ 正确答案 D 只用字符串表示且禁止运算
# 37. wasi-blob-store/wasi-http 等 WIT 接口在 WASM 服务的工程价值 A 只能用于浏览器内 B 与组件模型无关 C 替代所有 JS API D 把对象存储、HTTP 等能力抽象为接口,组件声明导入、宿主注入实现,实现可移植与能力安全 ✓ 正确答案
# 38. wasmtime/wasmer 在 Node.js 服务端运行 WASM 的工程取舍 A 比内置 WebAssembly 更快编译 B 替代 npm 包管理器 C 只能运行 JavaScript D 获得 WASI、组件模型、资源控制与多租户隔离等能力,适合服务端复杂场景 ✓ 正确答案
# 39. 冷启动优势(microsecond 级)与场景取舍 A 代码体积最小 B 低层指令无需 JS 式预热、支持流式编译与编译缓存,实例形态轻 ✓ 正确答案 C 服务器硬件更快 D 完全不需要任何初始化
# 40. WASI(WebAssembly System Interface) A 让 WASM 直接调用任意系统调用 B 取代浏览器 JavaScript C 以标准化接口 + 能力安全模型提供系统能力,组件按显式授予的句柄访问资源,实现跨宿主可移植 ✓ 正确答案 D 只支持 Linux 平台
# 41. WASI Preview 2 与 Component Model 在跨语言模块化的现代应用 A 只能单语言使用 B 取代操作系统 C 以 WIT 定义能力接口,多语言组件经组合工具拼接部署,支持插件化与独立演进 ✓ 正确答案 D 必须手工编写胶水代码
# 42. Wasmtime 在服务端运行 WASM 的工程实践与边界 A 每个请求都新建 Engine 实例 B 无法限制不可信组件的执行时间 C 组件可直接访问宿主所有资源 D 以最小权限注入宿主能力,用 fuel 与内存上限控制资源,实例池化复用模块 ✓ 正确答案
# 43. Wasmer 在 WASM 运行时与包管理的工程应用 A 只支持浏览器环境 B 无法限制 CPU 使用 C 与 WASI 标准完全无关 D 多后端运行时 + wapm 包管理,支持 WASIX 系统调用扩展,适合插件系统与 WASM 分发 ✓ 正确答案
# 44. WASM 模块、实例、内存、表、全局变量 A 一个模块只能实例化一次 B 表用于存储整数数据 C 模块是静态代码资产可复用,实例是绑定内存/表/全局的运行状态,多实例间状态相互隔离 ✓ 正确答案 D 全局变量只能由宿主修改
# 45. WASI 的 WASI-NN(神经网络)在 ML 模型推理的现代边界 A 它直接在 WASM 内实现神经网络算子 B 它支持完整的模型训练 C 它定义图/执行上下文的推理接口,由宿主绑定 OpenVINO/ONNX 等后端执行,仍是草案且预处理需组件自管 ✓ 正确答案 D 所有平台实现完全一致
# 46. WASI 的 WASI-Crypto 在密码学原语的工程价值 A 在 WASM 内重新实现所有算法 B 以接口声明密码原语、宿主提供经审计实现与密钥句柄,降低安全风险并跨平台一致 ✓ 正确答案 C 取代 TLS 协议 D 只能用于浏览器
# 47. WASI 的 WASI-Filesystem 在服务端文件访问的工程应用 A 组件可访问宿主全部文件 B 组件只能通过宿主授予的目录句柄解析相对路径,未授权路径不可访问 ✓ 正确答案 C 组件可以直接拼接绝对路径访问 D 文件系统接口不支持流式读取
# 48. WASI 的能力安全(capability-based security) A 组件运行在特权模式下 B 依赖操作系统 UID 检查 C 资源以句柄形式显式授予,访问必须经句柄,默认拒绝且无绝对路径概念 ✓ 正确答案 D 组件可以枚举宿主所有资源
# 49. WASM 浏览器侧 LLM 推理(llama.cpp / whisper.cpp) A 用 Emscripten 移植 llama.cpp/whisper.cpp,配合量化、SIMD/WebGPU 与多线程,适合小模型离线推理 ✓ 正确答案 B 把 Python 模型直接编译为 WASM C 必须连接 GPU 服务器 D 模型必须完全加载到 JS 堆
# 50. WASM 适用场景(计算密集、图像处理、视频编解码、加密、游戏物理、浏览器侧 LLM 推理) A 代码是否用 TypeScript 编写 B 是否使用了 React C 是否涉及任何网络请求 D 是否具备计算密集热点、批量数据形状与存量原生资产,同时避免 DOM/高频小调用场景 ✓ 正确答案
# 51. Atomics.wait+SharedArrayBuffer 在 WASM Worker 多线程的工程价值 A 让主线程阻塞等待计算结果 B 以共享内存 + 挂起唤醒实现线程池任务队列与细粒度同步,避免频繁消息传递,但主线程不能 wait ✓ 正确答案 C 替代 postMessage 的全部功能 D 不需要任何安全头即可使用
# 52. WASM Image/Video Processing(如 FFMPEG.wasm) A 可以实时转码任意 4K 视频 B 必须在服务端运行 C 不支持任何滤镜操作 D 经 Emscripten 移植 FFmpeg,适合本地轻量转码与格式预览,高分辨率实时转码受 CPU 与内存限制 ✓ 正确答案
# 53. WASM 与 JS 的性能度量方法论,调用开销、数据编解码与基准测试的工程取舍 A 只测 WASM 内循环时间 B 在开发机上测试即可代表生产 C 单次运行即可得出结论 D 区分调用开销、编解码与执行三层,控制变量预热测多轮统计量,并以 profile 数据驱动优化 ✓ 正确答案
# 54. Figma 图像编辑、Photoshop Web 版、AutoCAD Web 的 WASM 实践 A 全部功能都编译为 WASM 并直接操作 DOM B 完全不用 JavaScript C 计算密集核心走 WASM,渲染走 WebGL/WebGPU,数据经共享内存与 Worker 并行传递 ✓ 正确答案 D 只把登录逻辑编译为 WASM
# 55. WASM 二进制指令格式与栈式虚拟机 A 栈式指令执行速度更快 B 结构化栈式指令便于类型验证与单遍编译,引擎再翻译为寄存器指令 ✓ 正确答案 C 栈式指令无法表达循环 D 它只是文本格式的别名
# 56. WASM 不适用场景(DOM 操作、UI 渲染) A WASM 语法不支持函数调用 B DOM 性能优于任何原生方案 C 浏览器禁止 WASM 运行 D DOM 是 JS 引擎私有接口,WASM 必须经边界调用且无 UI 生态,高频交互成本高 ✓ 正确答案
# 57. WASM SIMD 在图像/音频等计算密集任务的加速与兼容性边界 A 提供 SIMD 与非 SIMD 双构建,按运行时能力选择并缓存,兼顾性能与兼容 ✓ 正确答案 B 只支持最新 Chrome C SIMD 构建可以在旧浏览器自动忽略指令 D 无需任何检测直接使用
# 58. WASM 模块加载优化(流式编译、懒加载、Compile Caching API) A instantiateStreaming 流式编译 + 按需懒加载分包 + Compile Caching API 复用编译结果 ✓ 正确答案 B 只把模块打包进主 bundle C 每次都重新下载完整字节码 D 禁用所有缓存
# 59. WASM Components 的 WIT 接口 与 WASM SIMD 的现代取舍 A WIT 定义粗粒度批量接口,SIMD 在组件内部优化热点算子,兼顾调用成本与算力 ✓ 正确答案 B 把 v128 类型直接暴露在 WIT 接口中 C 组件间逐元素高频调用 D SIMD 与接口设计无关
# 60. Emscripten 的 C/C++ → WASM 编译 在浏览器外(Node/Bun) A 用 -sNODERAWFS 把文件系统直通 Node,并针对 worker_threads 与运行时差异做适配 ✓ 正确答案 B 必须运行在浏览器中 C 无法在 Node 中加载 D 需要重写全部 C 代码
# 61. WASI Preview 3 的能力安全 与 WASI Preview 2/3 的现代协作 A Preview 2 为稳定基线,Preview 3 重构能力与异步语义,通过适配层与兼容矩阵渐进迁移 ✓ 正确答案 B Preview 3 完全废弃 Preview 2 C 两者不能共存于同一运行时 D 组件必须同时实现两套接口
# 62. WASM 的多值返回与多内存提案在多核并行的应用 A 只减少 WASM 文件体积 B 多值返回降低调用开销,多内存按任务输入/输出分区共享,减少同步粒度与数据搬运 ✓ 正确答案 C 二者与线程无关 D 必须同时启用否则无法并行
# 63. WASI Preview 1 与 Preview 2 的 API 兼容性工程取舍 A 两者接口完全一致 B 二者不二进制兼容,存量模块经 preview1 适配器过渡,新组件直接面向 Preview 2 ✓ 正确答案 C Preview 1 模块必须重写 D 适配器只存在于浏览器
# 64. Wasmtime 在 Rust 应用嵌入 WASM 的工程实践 A 所有请求共享一个 Store B 组件 panic 会被静默忽略 C 无法注入宿主函数 D Engine/Module/Store/Linker 分层管理,宿主函数经 Linker 注入,用 fuel 与内存上限控制不可信组件 ✓ 正确答案
# 65. WASI 在 Serverless(Cloudflare Workers、Fastly Compute) A 组件以 WASI/平台接口在边缘执行请求处理,核心逻辑可移植,平台差异集中在存储等能力接口 ✓ 正确答案 B 所有平台提供完全相同的 WASI 能力 C WASI 组件无法处理 HTTP 请求 D 必须绑定特定云厂商
# 66. WASI 在 Edge Computing(边缘计算)的现代应用 A 只能做静态文件缓存 B 与 CDN 完全无关 C 边缘节点无法运行 WASM D 微秒冷启动 + 能力安全 + 平台无关,支撑边缘函数、数据处理与轻量推理等形态 ✓ 正确答案
# 67. WASI 在跨平台(Linux、macOS、Windows) A 每个平台单独编译组件 B 只支持 Windows C 组件只依赖 WASI 接口,运行时把接口映射到各平台系统调用,同一产物跨平台分发 ✓ 正确答案 D 需要组件内实现系统调用
# 68. WASI 的资源限制(fuel、memory)在生产部署的工程价值 A 以指令预算与内存上限封顶失控组件成本,按租户独立 Store 实现隔离与计费 ✓ 正确答案 B 提升组件运行速度 C 只对浏览器生效 D 限制后组件无法运行
# 69. WASI 与 Docker 容器化的工程取舍与边界 A 容器冷启动更快 B WASI 隔离能力弱于线程 C WASI 冷启动与内存占用远优于容器但系统能力有限,适合无状态函数,容器适合完整运行时场景,可混合使用 ✓ 正确答案 D 两者完全相同
# 70. WASI 在 Rust、AssemblyScript、C++ 编译产物的工程应用 A Rust 经 cargo target 支持最完整,C++ 经 wasi-sdk 适配 POSIX 库,AssemblyScript 轻量但生态有限 ✓ 正确答案 B 三者产物完全一致 C 只有 Rust 能编译 WASI D 三者的 WASI 接口互不兼容
# 71. WASI Preview 2 的 WIT(WebAssembly Interface Types) A 用 WIT 定义接口与 world,wit-bindgen 生成各语言绑定,运行时按 world 校验注入 ✓ 正确答案 B 用 JSON 描述接口 C 接口必须手写汇编 D WIT 与组件模型无关
# 72. 使用 WebAssembly Component Model 组合 Rust 与 JavaScript 组件时,如何用 WIT 的 resource、result、option 和 stream 表达所有权、错误与异步背压,并为接口版本演进保持二进制兼容 A 同步数组拷贝 B 只在 JS 侧可用 C 替代 resource D 以拉模型流式传输数据并承载背压,配合 future 表达异步结果 ✓ 正确答案
# 73. 一个组件既通过 wasi-http 处理流式请求,又通过 wasi-blob-store 读写大文件时,如何限制 capability handle、避免整文件复制进线性内存,并在客户端取消后传播取消与资源清理 A 以流分块读写透传,配合能力句柄最小化与取消/清理机制 ✓ 正确答案 B 一次性读入线性内存 C 禁止使用 wasi-http D 把文件复制到组件内存
# 74. 同一个 WASI 组件先在 Wasmtime 运行、再用 Jco 转译到浏览器时,哪些 Preview 2 import 可以复用,哪些文件系统、socket、时钟或随机数能力必须由浏览器适配器显式提供 A 直接访问本地磁盘 B 完全忽略文件系统 C 映射到 OPFS(Web 文件系统句柄),socket 类能力降级为 WebTransport/WebSocket 或禁用 ✓ 正确答案 D 用 IndexedDB 模拟任意路径
# 75. Jco 生成的浏览器 ES 模块需要调用 fetch、OPFS 和 Web Streams 来承接 WASI 能力时,如何设计最小权限 shim,并测试恶意组件不能越权访问任意网络或存储路径 A 直接把全局 fetch 和整个 OPFS 传给组件 B 组件可自行解析任意路径 C 禁止任何网络访问 D 只实现组件声明的最小接口,网络走白名单请求工厂,存储隔离在专属 OPFS 目录,并配负例测试 ✓ 正确答案
# 76. Emscripten vs wasm-pack 在依赖组织与编译产物的工程取舍 A Emscripten 输出 wasm + 胶水(C/C++ ports 生态),wasm-pack 输出模块化 wasm + TS 类型(Rust/crates 生态) ✓ 正确答案 B 两者产物完全一样 C wasm-pack 不能发布到 npm D Emscripten 不支持 C++
# 77. WASM 与 WebGL/WebGPU 的协同(例如 WASM 计算 + GPU 渲染) A 所有计算都放 GPU B 所有渲染都放 WASM C WASM 负责需分支的逻辑计算与数据准备,GPU 负责大规模并行渲染/计算,数据经共享缓冲批量流转 ✓ 正确答案 D 两者不能同时使用