XWCXF 发表于 昨天 14:09

aardio 运行JS代码

本帖最后由 XWCXF 于 2025-6-27 14:10 编辑

一、基础认知:JS 引擎集成的意义
在编程工作中,有时需要借助 JavaScript 的能力完成任务。aardio 提供的 web.script 模块,就像为我打开了一扇通道,能在 aardio 程序里直接调用 JS 功能,让不同语言的工具协同工作。
二、实践过程

(一)运行简单 JS 代码
用 aardio 运行最基础的 JS 计算代码。
代码:
import console;
import web.script;

// 创建 JS 引擎实例,选用 JScript 环境
var js = web.script("JScript")
// 执行 JS 表达式,计算 1 + 2
var result = js.eval("1 + 2");
console.log(result);// 输出结果:3
console.pause();
https://aar.chengxu.online/upload/files/20250627/1750990159.png
通过 web.script 快速搭建 JS 运行环境,eval 方法像“传送门”,把 JS 代码丢进去就能执行,简单又直接。
(二)传递 aardio 数据到 JS
让 aardio 里的变量参与 JS 计算。
代码:
import console;
import web.script;

var js = web.script("JScript")

// 定义 aardio 变量
var num = 5;
// 拼接变量到 JS 代码,实现数据传递
var result = js.eval("var a = " + num + "; a * 2");
console.log(result);// 输出结果:10
console.pause();
https://aar.chengxu.online/upload/files/20250623/1750688881.png
这种拼接方式虽基础,但能解决数据互通问题。后续复杂数据,或许要更规范的传递方式(比如 JSON 序列化),不过当前场景够用。
(三)从 JS 获取对象
在 aardio 中使用 JS 创建的对象。
代码:
import console;
import web.script;

var js = web.script("JScript")

// JS 创建对象,传递回 aardio
var obj = js.eval("({name: 'John', age: 30})");
console.log(obj.name);// 输出:John
console.log(obj.age);   // 输出:30
console.pause();
https://aar.chengxu.online/upload/files/20250627/1750990160.png
JS 对象能直接在 aardio 里访问属性,像操作本地对象一样,语言间的边界变得很模糊,协作更顺畅。
(四)挑战:JS 数组求和
题目:用 JS 定义数组 ,计算元素和并输出。
实现代码:
import console;
import web.script;
var js = web.script("JScript")

// 运行 JavaScript 代码计算数组元素的和
var result = js.eval("
var arr = ;
var sum = 0;
for(var i = 0; i < arr.length; i++) {
    sum += arr;
}
sum");
console.log(result);// 输出结果 15
console.pause();https://aar.chengxu.online/upload/files/20250627/1750990161.png
把多行 JS 代码嵌入 aardio ,借助 JS 的数组、循环语法完成计算。
三、总结
核心能力掌握:
[*] 用 web.script 快速初始化 JS 引擎,通过 eval 执行 JS 代码;
[*] 实现 aardio 与 JS 的数据双向传递(变量传递、对象获取 );
[*] 整合 JS 语法完成复杂逻辑(数组遍历求和 )。


aardio 新手交流学习群,一起学习的进qq群号:697197055
微信群加我 _825720xw 拉你


页: [1]
查看完整版本: aardio 运行JS代码