更新记录
1.1.0(2023-11-06) 下载此版本
修复平面向量、空间向量、二维矩阵与数值乘法求值不正确的bug; 支持平面向量、空间向量、二维矩阵的 *= 运算; 支持字符串长度属性(.size/.length); 支持字符串求子串方法.substr(from, length);
1.0.9(2023-10-31) 下载此版本
修复数组元素复制时,传值/传引用自动判别错误的bug;
1.0.8(2023-10-30) 下载此版本
解决连续转义字符解析不正确的bug; 为数组增加双端队列、双端堆栈接口; ary = [1, 2, 3, 4]; ary.push_back(99); //尾部入栈,返回ary新的长度 ary.pop_back(); //尾部出栈,返回出栈元素 ary.push_front(99); //头部入栈,返回ary新的长度 ary.pop_front(); //头部出栈,返回出栈元素
查看更多平台兼容性
uni-app
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 | 
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | - | - | - | 
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 | 
|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | - | √ | √ | √ | √ | 
其他
| 多语言 | 暗黑模式 | 宽屏模式 | 
|---|---|---|
| × | × | √ | 
xuhua-MathExpRelease
微信小程序体验码

1 使用方法
1.1 引入及调用
import { MathExp } from "@/uni_modules/xuhua-MathExpRelease/js_sdk/MathExp.js"
var mathExp = new MathExp();
mathExp.eval(`
    f(x) = sin(x);
`);
mathExp.eval(`
    a = f(45 * PI / 180);
`);
var res = mathExp.eval(`
    [a, sin(30), f.x];  //末尾的分号一定要加
`);
res = mathExp.eval(`
    【a, sin(30), f。x】;  //支持中文符号,方便移动端输入
`);
if (res.succ) {
    console.log(res);
}
1.2 运行结果
res = {
    result: [0.7071067811865475, -0.9880316240928618, 0.7853981633974483],
    succ: true
}
2 脚本语法
2.1 语句结尾需要加分号
x = 1;
str01 = "Hello World !!!";
2.2 注释
//单行注释
/*
多行注释
多行注释
*/
2.3 变量定义
var a01 = 99;   //本地变量定义
var i = 0, j = 1;   //本地变量定义
a02 = 99.99;    //变量赋值,如果上层作用域不存在,则创建本地变量
x = y = z = 10; //连续初始化
b = "Hello World !!!";
b.size;     //字符串长度
b.length;   //字符串长度
for (var i=j=0; i<b.length; ++i) {
    // i 为for循环局部变量
    // j 如果上层作用域不存在,则创建for循环局部变量
}
2.4 数组和矩阵
2.4.1 数组定义
ary = [1, 2, 3];    //一维数组
m1x2 = [ [1, 2] ];  //二维矩阵,一行两列
m2x3 = [
    [666, 12, 13],
    [21, 22, 23]
];
m2x3[0][0] = 11;    //666 -> 11
m2x3.size;  //-> 2
m2x3.length;    //-> 2
m2x3[1].size;   //-> 3
//双端队列、双端堆栈接口
ary.push_back(99);  //尾部入栈,返回ary新的长度
ary.pop_back();     //尾部出栈,返回出栈元素
ary.push_front(99); //头部入栈,返回ary新的长度
ary.pop_front();    //头部出栈,返回出栈元素
2.4.2 向量叉乘
//平面向量叉乘
a = [1, 2];
b = [3, 4];
a * b;  // => 结果:-2
b * a;  // => 结果:2
//空间向量叉乘
c = [1, 0, 0];
d = [0, 1, 0];
c * d;  // => 结果:[0, 0, 1]
d * c;  // => 结果:[0, 0, -1]
2.4.3 二维矩阵乘法
// 2 * 3 矩阵
A = [
    [1, 2, 3],
    [3, 2, 1]
];
// 3 * 2 矩阵
B = [
    [1, 1],
    [2, 2],
    [3, 3]
];
// 结果:2 * 2 矩阵
A * B;
=> 结果:
[
    [14, 14],
    [10, 10]
]
2.5 函数定义
f(x) = 16 * sin(x + 1) + 8;
g(x, y) = {
    z = f(x) + sin(y);
    return z;
}
f.x;    //访问 f 函数内部变量 x
g.z;    //访问 g 函数内部变量 z
2.6 分支 if 语句
c = 0;
if (a > b) {
    c = a;
} else {
    c = b;
}
2.7 分支 switch 语句
c = 0;
switch (a) {
    case 0:
        c = 10;
        break;
    case 10:
        c = 20;
        break;
    default:
        c = 100;
}
2.8 循环语句 for
for (var i=0; i<10; ++i) {
    if (i == 5) continue;
    print("第 " + (i+1) + "次\n");
    if (i == 8) break;
}
2.9 运算符
//数学运算
加减乘除:+ - * /, +=, -=, *=, /=
取模:x % 2, %=
乘方:x^2, ^=
阶乘:3!
自增自减:++x, x++, --x, x--
逻辑运算:&&, ||, !, ==, !=, >, >=, <, <=
三目运算:a > b ? a : b
位运算:&, |, ~, &=, |=, xor(a, b), >>, <<, >>=, <<=
2.10 内部常量
E = 2.718281828459045
PI = 3.141592653589793
2.11 内部函数
abs(x):     求绝对值
floor(x):   求不大于x的整数
ceil(x):    求不小于x的整数
round(x):   四舍五入
sqrt(x):    求x的平方根
exp(x):     求自然底数E的x次方
log(x):     求以E为底的自然对数
sin(x):     求x弧度的正弦
cos(x):     求x弧度的余弦
tan(x):     求x弧度的正切
asin(x):    求x弧度的反正弦
acos(x):    求x弧度的反余弦
atan(x):    求x弧度的反正切,结果范围[-PI/2 ~ PI/2]
random():   求随机数,范围[0 ~ 1]
xor(x, y):  求x和y的按位亦或
length(x):  求向量的长度
normalize(x):   求向量x的归一化向量
dot(m1, m2):    求向量m1和m2的点乘积
print(x):   打印x的值,内部为console.log(x)
                                        
                                                                    
                                                                        收藏人数:
                                    
                                            下载插件并导入HBuilderX
                                        
                                                                                                下载插件ZIP
                                            
                                        赞赏(1)
                                    
                                            
 下载 22
                
 赞赏 1
                
            
                    下载 10688502 
                
                        赞赏 1797 
                    
            
            
            
            
            
            
            
            
            
            
            
            
            
            
                        
                                赞赏
            
京公网安备:11010802035340号