https://zhuanlan.zhihu.com/p/692270642

推荐2个JavaScript开源引擎,方便在C#执行JavaScript脚本。

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

详细介绍:Yantra:一个基于.Net跨平台JavaScript开源引擎

更多开源项目请查看:一个专注推荐.Net开源项目的榜单

盘点2个.Net版本的JavaScript执行引擎的更多相关文章

  1. javascript中的defer和async学习+javascript执行顺序

    一.defer和async 我们常用的script标签,有两个和性能.js文件下载执行顺序相关的属性:defer和async defer的含义[摘自https://developer.mozilla. ...

  2. 《深入理解Java虚拟机》-----第8章 虚拟机字节码执行引擎——Java高级开发必须懂的

    概述 执行引擎是Java虚拟机最核心的组成部分之一.“虚拟机”是一个相对于“物理机”的概念 ,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器.硬件.指令集和操作系统层面上的,而 ...

  3. JavaScript 执行环境、作用域、内存管理及垃圾回收机制

    前言 JavaScript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存. [原理]找出那些不再继续使用的变量,然后释放其占用的内存.为此,垃圾收集器会按照固定的时间间隔( ...

  4. 理解Javascript执行过程

    Javascript是一种解释型的动态语言. 在程序中,有编译型语言和解释型语言.那么什么是编译型语言,什么是解释型语言呢? 编译型语言: 它首先将源代码编译成机器语言,再由机器运行机器码(二进制). ...

  5. 探索JavaScript执行机制

    前言 不论是工作还是面试,我们可能都经常会碰到需要知道代码的执行顺序的场景,所以打算花点时间彻底搞懂JavaScript的执行机制. 如果这篇文章有帮助到你,️关注+点赞️鼓励一下作者,文章公众号首发 ...

  6. javascript执行环境(执行期上下文)详解

    javascript执行环境(执行期上下文) 当js控制器(control)进入可执行代码时,控制器会进入一个执行环境,活动的多个执行环境构成执行环境栈,最上面的是正在运行的执行环境,当控制器进入一个 ...

  7. JavaScript执行顺序分析

    之前从JavaScript引擎的解析机制来探索JavaScript的工作原理,下面我们以更形象的示例来说明JavaScript代码在页面中的执行顺序.如果说,JavaScript引擎的工作机制比较深奥 ...

  8. javascript执行机制

    文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我. 不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的 ...

  9. JavaScript 执行机制

    一.宏任务与微任务 macro-task(宏任务):包括整体代码script,setTimeout,setInterval micro-task(微任务):Promise,process.nextTi ...

  10. 转载---JavaScript执行机制

    很好的一篇文章,原地址 JavaScript执行机制 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我. 不 ...

随机推荐

  1. 「Log」2023.8.14 小记

    序幕 起晚了,七点半到校. 跟化竞选手寒暄几句之后就去开电脑. 补周末没写的博客,补落下的题单. 学杜教筛??????不会卷积????? 暂时放弃,学一下扩欧. 写了篇扩欧博客. \(\text{Li ...

  2. SAP STRANS 导出EXCEL

    第一次用strans是2014年,第二次就是2017年...最近看到有人在问EXCEL双表头的问题,想着就把STRANS导出EXCEL的方法保存下来吧.方便大家参考. 1.已经记不清到底改做哪些类型的 ...

  3. [书籍精读]《你不知道的JavaScript(下卷)》精读笔记分享

    写在前面 书籍介绍:JavaScript这门语言简单易用,很容易上手,但其语言机制复杂微妙,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理解.本套书直面当前JavaSc ...

  4. 支付宝小程序IDE版本迭代异常

    前情 uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验也挺棒的,公司项目就是主推uni-app 现公司今年准备新开一 ...

  5. Java中==与equals()函数的区别

    前段时间写网站,在servlet中要对用户输入的密码做判断,就出现一个很奇怪的现象:if条件句中如果用"=="作判断条件,就没法通过验证,而一换成equlas()函数,就完美解决了 ...

  6. bfs 和 dfs + 回溯 的比较好的写法

    简介 刷题经常会使用bfs 和 dfs 总结 问题, 从0,0 走到 n,m 最小花费是多少? 0, 花费2元 1, 花费1元 2, 此路不通 code dfs void dfs(vector< ...

  7. ARIMA 模型简单介绍

    简介 中文名字叫做 差分(I) 自相关回归(AR) 移动平均(MA) 模型 总而言之 根据以前的数据预测新数据 比较常用的模型 比较好的视频资料 https://www.bilibili.com/vi ...

  8. SciTech-BigDataAIML-TensorFlow-Model模型的 建立与训练 与 Layer层的inputs/outputs参数可自适应训练建模(投入产出)

    TensorFlow 模型建立与训练 TensorFlow 模型建立与训练 本章介绍如何使用 TensorFlow 快速搭建动态模型. 模型的构建: tf.keras.Model 和 tf.keras ...

  9. SciTech-EECS-Wireless-BLE(Bluetooth Low Energy)5.4- Nordic Semi. 的Bluetooth Low Energy SoCs

    蓝牙5.4低功耗: 市场上主流的供货方和解决方案: TI SiLabs: BG22, BG24, BG21 Nordic Semi. : nRF5340, nrf52*, https://www.no ...

  10. mybatis 3.x 升级时遇到的keyProperty问题小坑

    背景: 有1个项目,原来是用的mybatis 3.4.6版本,其中有一些插入mapper是这样写的: Integer insertEntitySelectiveShard(@Param("t ...