亚洲欧洲精品专线,国内少妇毛片视频,日本一区二区三区高清无卡,香蕉久久久久久AV综合网成人

Goja 完全用Go編寫的JS引擎

軟件 來源:Github精選 2024-11-04 09:58:52

Goja 是一個(gè)完全用 Go 編寫的 ECMAScript 5.1/JavaScript 引擎,它側(cè)重于標(biāo)準(zhǔn)遵從性和性能。Goja 使得開發(fā)者能夠在純 Go 項(xiàng)目中執(zhí)行 JavaScript 代碼,以此來解決 Go 和 JavaScript 間的通信難題。

該項(xiàng)目由 otto 啟發(fā),但在執(zhí)行效率和 ES5.1 特性支持上做了大量的提升和完善。Goja 不僅支持 ECMAScript 5.1 標(biāo)準(zhǔn),包括正則表達(dá)式和嚴(yán)格模式,還實(shí)現(xiàn)了部分 ES6 的功能,并且正在努力實(shí)現(xiàn)對(duì)更多 ES6 功能的支持。此外,Goja 還支持 sourcemaps,能夠運(yùn)行 Babel、TypeScript 編譯器等 ES5 編寫的工具。

如何使用

首先需要確保你的環(huán)境中已安裝 Go 1.20 或更高版本。然后,通過以下 Go 命令安裝 Goja:

go?get?github.com/dop251/goja

安裝完成后,你可以開始在項(xiàng)目中使用 Goja 來執(zhí)行 JavaScript 代碼了。下面是一個(gè)簡(jiǎn)單的示例,展示如何執(zhí)行一段 JavaScript 代碼并獲取結(jié)果:

const?SCRIPT?=`function?sum(a,?b)?{????return?+a?+?b;}`vm?:=?goja.New()_,?err?:=?vm.RunString(SCRIPT)if?err?!=nil{? panic(err)}sum,?ok?:=?goja.AssertFunction(vm.Get("sum"))if!ok?{? panic("Not?a?function")}res,?err?:=?sum(goja.Undefined(),?vm.ToValue(40),?vm.ToValue(2))if?err?!=nil{? panic(err)}fmt.Println(res)//?Output:?42

項(xiàng)目推介

Goja 項(xiàng)目適用于需要在 Go 環(huán)境下執(zhí)行 JavaScript 代碼的各種場(chǎng)景,比如用作腳本引擎、實(shí)現(xiàn)動(dòng)態(tài)功能等。由于是純 Go 實(shí)現(xiàn),Goja 避免了 cgo 的依賴和開銷,使得構(gòu)建和跨平臺(tái)部署變得更加簡(jiǎn)單,無論是在 Linux、Windows 還是 MacOS 系統(tǒng)上。此外,Goja 正在積極地實(shí)現(xiàn)部分 ES6 功能,對(duì)于追求新技術(shù)的開發(fā)者來說,使用 Goja 將使你始終站在技術(shù)的前沿。

以下是該項(xiàng)目 Star 趨勢(shì)圖(代表項(xiàng)目的活躍程度):

更多項(xiàng)目詳情請(qǐng)查看如下鏈接。

開源項(xiàng)目地址:https://github.com/dop251/goja

開源項(xiàng)目作者:dop251

關(guān)注公眾號(hào):拾黑(shiheibook)了解更多

友情鏈接:

關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級(jí)服務(wù)市場(chǎng):https://www.ijiandao.com/
安全、綠色軟件下載就上極速下載站:https://www.yaorank.com/

公眾號(hào) 關(guān)注網(wǎng)絡(luò)尖刀微信公眾號(hào)
隨時(shí)掌握互聯(lián)網(wǎng)精彩
贊助鏈接