顯然,這是一個英文單詞,並且是一個組合詞,
web + assembly
assembly 很多中國人不知道什麼意思,但是我要是說出他的翻譯,你一定立馬知道了,他就是組合語言
顧名思義 WebAssembly 就是 web 上的組合語言
所以理論上所有可以編譯成為組合語言的高級語言都可以通過編譯器 轉換成 wasm
wasm 有兩個後綴.wat 和 .wasm
wat 是 WebAssembly text 文本呈現模式
內容大概是這個樣子
(module (func $mul (param $factor1 i32) (param $factor2 i32) (result i32) local.get $factor1 local.get $factor2 i32.mul) (export "mul" (func $mul)))
wasm 是二進制格式
![[Pasted image 20240216144348.png]]
你可以使用Emscripten 來編譯高級語言的代碼到 wasm
$ emcc hello.c -o hello.html
這會返回編譯後的二進制文件和一個 html 封裝容器,你可以通過打開 html 的控制台來查看 wasm 的執行情況
或者也可以使用 js 封裝容器,你可以在 nodejs 環境中直接運行,我一般使用 vscode 的 run code 插件
$ emcc hello.c -o hello.js
這就是 wasm 的用法,由於它可以提供接近原生組合級別的高性能,常被用來計算在 js 中高消耗的任務,這也有助於維護移動設備電量,提供更好的運行體驗