在浏览器中,JavaScript 通过 WebAssembly 命名空间加载模块,常用 WebAssembly.instantiate 或流式的 WebAssembly.instantiateStreaming 完成实例化,随后调用模块导出的函数。导出的函数参数和返回值会在 JavaScript 类型与 WebAssembly 值类型之间自动转换。
WebAssembly 与 JavaScript 通过线性内存共享数据。JavaScript 可以借助 Uint8Array、DataView 等视图对象访问 WebAssembly 的线性内存缓冲区,实现大块数据(如图像像素、二进制流)的高效传递,避免逐值拷贝带来的性能损耗。
WebAssembly 的设计定位是与 JavaScript 互补运行:JavaScript 负责表达性强、灵活易用的界面与逻辑层,WebAssembly 承担计算密集、性能敏感的核心计算层。二者在同一应用中协作,兼顾开发效率与运行性能。