Skip to content

Latest commit

 

History

History
93 lines (77 loc) · 7.94 KB

File metadata and controls

93 lines (77 loc) · 7.94 KB
title slug l10n
WebAssembly
WebAssembly
sourceCommit
06dad97d3bd2c2296ac6344fad5a1ae1a768e4d0

{{WebAssemblySidebar}}

WebAssembly 是一种新的编码方式,可以在现代的 Web 浏览器中运行——它是一种低级的类汇编语言,具有紧凑的二进制格式,可以接近原生的性能运行,并为诸如 C/C++、C# 和 Rust 等语言提供编译目标,以便它们可以在 Web 上运行。它也被设计为可以与 JavaScript 共存,允许两者一起工作。

简而言之

对于 Web 平台而言,WebAssembly 具有巨大的意义——它提供了一条使得以各种语言编写的代码都可以接近原生的速度在 Web 中运行的途径,使得以前无法在 Web 上运行的客户端应用程序得以在 Web 上运行。

WebAssembly 被设计为可以和 JavaScript 一起协同工作——通过使用 WebAssembly 的 JavaScript API,你可以把 WebAssembly 模块加载到 JavaScript 应用中并且在两者之间共享功能。这允许你在同一个应用中利用 WebAssembly 的性能和能力以及 JavaScript 的表达力和灵活性,即使你可能并不知道如何编写 WebAssembly 代码。

而且,更棒的是,这是由 W3C WebAssembly 工作组社区组开发的 Web 标准,并得到了来自各大主要浏览器厂商的积极参与。

指南

API 参考

  • WebAssembly 指令参考
    • : 包含 WebAssembly 运算符的交互式示例的参考文档。
  • WebAssembly JavaScript 接口
    • : 该对象充当所有与 WebAssembly 相关的功能的命名空间。
  • WebAssembly.Global()
    • : WebAssembly.Global 对象表示一个全局变量实例,可以从 JavaScript 访问,并且可以在一个或多个 WebAssembly.Module 实例之间导入/导出。这允许动态链接多个模块。
  • WebAssembly.Module()
    • : WebAssembly.Module 对象包含了已经被浏览器编译的无状态 WebAssembly 代码。该代码能够高效地与 Worker 共享,并多次实例化。
  • WebAssembly.Instance()
    • : WebAssembly.Instance 对象是一个有状态的、可执行的模块(Module)的实例。实例对象包含了所有能够从 JavaScript 调用 WebAssembly 代码的导出的 WebAssembly 函数
  • WebAssembly.compile()
    • : WebAssembly.compile() 函数将 WebAssembly 二进制代码编译为 WebAssembly.Module 对象。
  • WebAssembly.compileStreaming()
    • : WebAssembly.compileStreaming() 函数直接从流式底层源编译 WebAssembly.Module
  • WebAssembly.instantiate()
    • : WebAssembly.instantiate() 函数允许你编译和实例化 WebAssembly 代码。
  • WebAssembly.instantiateStreaming()
    • : WebAssembly.instantiateStreaming() 函数是编译和实例化 WebAssembly 代码的主要的 API,它返回 Module 及其第一个实例。
  • WebAssembly.validate()
    • : WebAssembly.validate() 函数验证给定的 WebAssembly 二进制代码的类型化数组。
  • WebAssembly.Memory()
    • : WebAssembly.Memory 对象是一个存储了可被实例(Instance)访问的内存原始字节的可变长 {{jsxref("Global_objects/ArrayBuffer", "ArrayBuffer")}}。
  • WebAssembly.Table()
    • : WebAssembly.Table 对象是一个用于存储可被实例(Instance)访问的不透明值(例如函数引用)的可变长类型化数组。
  • WebAssembly.Tag()
    • : WebAssembly.Tag 对象用于定义 WebAssembly 的异常类型,可以在 WebAssembly 代码中抛出/捕获。
  • WebAssembly.Exception()
    • : WebAssembly.Exception 对象表示从 WebAssembly 抛出到 JavaScript 的运行时异常,或者从 JavaScript 抛出到 WebAssembly 的异常处理器的异常。
  • WebAssembly.CompileError()
    • : 创建一个新的 WebAssembly CompileError 对象。
  • WebAssembly.LinkError()
    • : 创建一个新的 WebAssembly LinkError 对象。
  • WebAssembly.RuntimeError()
    • : 创建一个新的 WebAssembly RuntimeError 对象。

示例

规范

{{Specifications}}

参见