Skip to main content

js

成员函数函数描述/介绍
.
js.ASTWalkASTWalk 对传入的JS代码进行AST遍历,返回遍历后的结果(包含字面量,标识符,语法错误)和错误
js.CallFunctionFromCodeCallFunctionFromCode 从传入的代码中调用指定的JS函数并返回调用结果 它的第一个参数为包含JS代码的字符串 第二个参数为要调用的JS函数名 后续参数为零个到多个函数参数
js.GetSTType
js.NewNew 创建新的JS引擎并返回
js.ParseParse 对传入的JS代码进行解析并返回解析后的AST树和错误
js.RunRun 创建新的JS引擎并运行传入的代码并返回JS引擎结构体引用,运行值和错误 第一个参数为运行的代码字符串 后续参数为零个到多个运行选项,用于对此次运行进行配置,例如嵌入常用的JS第三方库等
js.libCryptoJSV3libCryptoJSV3 是一个JS运行选项参数,用于在运行JS代码时嵌入CryptoJS 3.3.0库
js.libCryptoJSV4libCryptoJSV4 是一个JS运行选项参数,用于在运行JS代码时嵌入CryptoJS 4.2.0库
js.libJSRSASignlibJSRSASign 是一个JS运行选项参数,用于在运行JS代码时嵌入jsrsasign 10.8.6库

函数定义#

详细描述#

定义#

``

ASTWalk#

详细描述#

ASTWalk 对传入的JS代码进行AST遍历,返回遍历后的结果(包含字面量,标识符,语法错误)和错误

Example:

code = `function add(a, b) { return a + b; }`res = javascript.ASTWalk(code)~dump(res)

定义#

ASTWalk(code string) (*ASTWalkerResult, error)

参数#

参数名参数类型参数解释
codestring

返回值#

返回值(顺序)返回值类型返回值解释
r1*ASTWalkerResult
r2error

CallFunctionFromCode#

详细描述#

CallFunctionFromCode 从传入的代码中调用指定的JS函数并返回调用结果

它的第一个参数为包含JS代码的字符串

第二个参数为要调用的JS函数名

后续参数为零个到多个函数参数

Example:

value = js.CallFunctionFromCode(`function add(a, b) { return a + b; }`, "add", 1, 2)~println(value.String())

定义#

CallFunctionFromCode(src any, funcName string, params ...any) (goja.Value, error)

参数#

参数名参数类型参数解释
srcany
funcNamestring
params...any

返回值#

返回值(顺序)返回值类型返回值解释
r1goja.Value
r2error

GetSTType#

详细描述#

定义#

GetSTType(st any) string

参数#

参数名参数类型参数解释
stany

返回值#

返回值(顺序)返回值类型返回值解释
r1string

New#

详细描述#

New 创建新的JS引擎并返回

Example:

engine = js.New()val = engine.Eval("1+1")~.ToInteger()~println(val)

定义#

New() *goja.Runtime

返回值#

返回值(顺序)返回值类型返回值解释
r1*goja.Runtime

Parse#

详细描述#

Parse 对传入的JS代码进行解析并返回解析后的AST树和错误

Example:

code = `function add(a, b) { return a + b; }`tree = js.Parse(code)~dump(tree)

定义#

Parse(code string) (*ast.Program, error)

参数#

参数名参数类型参数解释
codestring

返回值#

返回值(顺序)返回值类型返回值解释
r1*ast.Program
r2error

Run#

详细描述#

Run 创建新的JS引擎并运行传入的代码并返回JS引擎结构体引用,运行值和错误

第一个参数为运行的代码字符串

后续参数为零个到多个运行选项,用于对此次运行进行配置,例如嵌入常用的JS第三方库等

Example:

_, value = js.Run(`CryptoJS.HmacSHA256("Message", "secret").toString();`, js.libCryptoJSV3())~println(value.String())

定义#

Run(src any, opts ...jsRunOpts) (*goja.Runtime, goja.Value, error)

参数#

参数名参数类型参数解释
srcany
opts...jsRunOpts

返回值#

返回值(顺序)返回值类型返回值解释
r1*goja.Runtime
r2goja.Value
r3error

libCryptoJSV3#

详细描述#

libCryptoJSV3 是一个JS运行选项参数,用于在运行JS代码时嵌入CryptoJS 3.3.0库

Example:

_, value = js.Run(`CryptoJS.HmacSHA256("Message", "secret").toString();`, js.libCryptoJSV3())~println(value.String())

定义#

libCryptoJSV3() jsRunOpts

返回值#

返回值(顺序)返回值类型返回值解释
r1jsRunOpts

libCryptoJSV4#

详细描述#

libCryptoJSV4 是一个JS运行选项参数,用于在运行JS代码时嵌入CryptoJS 4.2.0库

Example:

_, value = js.Run(`CryptoJS.HmacSHA256("Message", "secret").toString();`, js.libCryptoJSV4())~println(value.String())

定义#

libCryptoJSV4() jsRunOpts

返回值#

返回值(顺序)返回值类型返回值解释
r1jsRunOpts

libJSRSASign#

详细描述#

libJSRSASign 是一个JS运行选项参数,用于在运行JS代码时嵌入jsrsasign 10.8.6库

Example:

_, value = js.Run(`KEYUTIL.getKey(pemPublicKey).encrypt("yaklang")`, js.libJSRSASign())~println(value.String())

定义#

libJSRSASign() jsRunOpts

返回值#

返回值(顺序)返回值类型返回值解释
r1jsRunOpts