https://mp.weixin.qq.com/s/G1FsEv8qa0orsNMmdpH1AA
开源地址:https://github.com/paulbartrum/jurassic
开源地址:https://github.com/yantrajs/yantra
Yantra是一个基于.NET Standard开发的开源项目,提供了一个完全用C#编写的托管JavaScript引擎,方便.Net环境中高效地执行JavaScript脚本。
02
项目特点
该项目支持多种JavaScript特性,包括ES5和ES6的许多功能,如箭头函数、类、类成员、增强的对象字面量、模板字符串、解构赋值、let和const声明、Map和Set等内置对象,以及二进制和八进制字面量。它还支持Async/Await异步编程模型、可选参数、尾调用优化等特性。
03
使用示例
1、安装依赖库
Install-Package YantraJS.Core
2、示例代码
using YantraJS.Core;
var context = new JSContext();
//创建一个方法
context["add"] = new JSFunction((in Arguments a) => {
return new JSNumber(
(a[0]?.IntValue ?? 0) + (a[1]?.IntValue ?? 0)
);
});
var result = context.Eval("add(4,5)", "script.js");
Console.Write(result);
3、执行效果
图片
04
项目地址
https://github.com/yantrajs/yantra
1、jurassic
Jurassic是一个开源的托管JavaScript执行引擎,使用MS-PL授权协议。它的目标是成为.NET平台上功能最强,最为标准的JavaScript引擎。
功能强大:支持ECMAScript 3和ECMAScript 5的功能,具备简单但强大的API,将JavaScript编译为.NET字节码(CIL),而非解释执行。这些功能使得Jurassic能够满足各种不同的编程需求;
var engine = new Jurassic.ScriptEngine();
//输出11
Console.WriteLine(engine.Evaluate("var a = 5; var b = 6; a + b;"));
engine.Evaluate("function add(a,b){return a+b;}");
var result = engine.CallGlobalFunction<int>("add", 5, 6);
//输入11
Console.WriteLine(result);
开源地址:https://github.com/paulbartrum/jurassic
详细介绍:一个纯.Net开发的JavaScript执行引擎
2、Yantra
该项目支持多种JavaScript特性,包括ES5和ES6的许多功能,如箭头函数、类、类成员、增强的对象字面量、模板字符串、解构赋值、let和const声明、Map和Set等内置对象,以及二进制和八进制字面量。它还支持Async/Await异步编程模型、可选参数、尾调用优化等特性。
using YantraJS.Core;
var context = new JSContext();
//创建一个方法
context["add"] = new JSFunction((in Arguments a) => {
return new JSNumber(
(a[0]?.IntValue ?? 0) + (a[1]?.IntValue ?? 0)
);
});
var result = context.Eval("add(4,5)", "script.js");
Console.Write(result);
开源地址:https://github.com/yantrajs/yantra