AutoJs6 中文文档 下载 App

Rhino 引擎 JavaScript 语法支持范围

引擎概述

AutoJs6 使用 Mozilla Rhino 作为 JavaScript 脚本引擎。当前版本为 v2.0.0-SNAPSHOT(升级于 2025 年 12 月 25 日),相比原版 Auto.js 的 v1.7.7.2 有重大特性提升。

┌──────────────────────────────────────────┐
│              AutoJs6 脚本层               │
├──────────────────────────────────────────┤
│   v8+ 全局函数 (click, text, sleep...)   │
├──────────────────────────────────────────┤
│  Rhino 2.0.0-SNAPSHOT (JS 引擎)          │
├──────────────────────────────────────────┤
│    Android JVM (Java 互操作)              │
└──────────────────────────────────────────┘

支持的 ES 特性

ES5 ✅ 全部支持

所有 ES5 标准特性均完整支持:

ES6 ⭐ 部分支持

特性支持状态示例
let / const✅let x = 1; const PI = 3.14;
箭头函数✅(x) => x * 2
模板字符串✅` Hello ${name} `
解构赋值⚠️ 部分对象解构 ✅ / 数组解构需测试
Object.values()✅Object.values({a: 1, b: 2})
Array.includes()✅[1, 2, NaN].includes(2)
BigInt✅typeof 567n === 'bigint'
for...of✅for (let item of items) {}
默认参数✅function test(a = 1) {}
剩余参数⚠️ 部分function test(...args) {}
Promise⚠️ 需测试建议用 callback 风格
async/await❌ 不支持需用 Promise 链或回调
class⚠️ 部分支持基础 class 语法
Symbol⚠️ 部分基础 Symbol ✅ / 迭代器需测试
Proxy❌ 不支持Rhino 未实现
Map / Set⚠️ 需测试基础用法需验证
扩展运算符⚠️ 部分对象扩展 ✅

Unicode 升级

Rhino 2.0.0-SNAPSHOT 升级后支持辅助平面字符的码位转义:

// 表示音乐符号 𝅘𝅥𝅮
'\u{1D160}';
// 传统写法: '\uD834\uDD60'

这使 emoji 和其他 BMP 外字符能正确处理。

正则表达式增强

v6.7 新增:

// 选择器使用正则 + 忽略大小写标志
textMatches(/login/i).findOne();

// 后瞻断言
"price: ¥99".match(/(?<=¥)\d+/); // 匹配 "99"

与浏览器的差异

AutoJs6 在 Rhino 上运行,不是浏览器环境,以下特性不存在:

浏览器 APIAutoJs6 中替代方案
window / document❌ 不存在无替代(非浏览器)
setTimeout / setInterval⚠️ 有但需测试推荐用 setTimeout() 全局函数
XMLHttpRequest / fetch❌ 不存在用 http 模块
localStorage❌ 不存在用 storage 模块
console⚠️ 有但精简console.log() 可用,其他方法需测试
// 网络请求 — 不要用 fetch,用 http 模块
let response = http.get("https://api.example.com/data");
console.log(response.body.string());

Java 互操作

Rhino 的一大优势是可以直接调用 Java 类:

// 直接使用 Java 类
let file = new java.io.File("/sdcard/test.txt");
console.log(file.exists());

// 使用 Android API
let Intent = android.content.Intent;
let intent = new Intent();
intent.setClassName("com.android.settings", ".Settings");

版本兼容性建议