Appearance
概述
变量表达式是一种基于 JavaScript 语法的动态计算机制,用于对实时变量(如传感器值、设备状态等)进行数学运算、逻辑判断、函数处理和状态联动。
表达式填写规范
1. 变量表达式格式
举例
基本格式:函数([变量名])
Math.sin([角度变量])
2. 参数传递
- 变量格式:变量名用方括号 []包裹
- 参数传递:系统自动将方括号中的变量名替换为变量值
- 示例:[温度]→ 变量值(如 25.3)
3.返回值概述
- 函数计算结果自动返回
- 返回类型取决于具体函数的返回值类型(数字、字符串、布尔值等)
- 表达式结果可直接用于嵌套计算
示例:找到变量1和变量2中比较大的+5 ,变量1的值为2,变量2的值为3 。
填写: Math.max([变量1],[变量2]) +5 ,预期结果等于 3 + 5 = 8
使用提示
- 变量格式:所有变量必须用方括号 []包裹
- 参数类型:确保传入的参数类型与函数要求一致
- 表达式书写:使用标准的JavaScript语法
基础数学运算
1. 四则运算
| 运算类型 | 功能说明 | 语法/函数 | 参数 | 返回值 | 示例 | 预期结果 |
|---|---|---|---|---|---|---|
| 除法 | 计算两个变量的商 | [被除数] ÷ [除数] | 被除数和除数 | 两数之商 | 6 ÷ 3 | 2 |
| 取余 | 计算两个变量相除的余数 | [被除数] % [除数] | 被除数和除数 | 相除后的余数 | 5 % 3 | 2 |
| 加法 | 计算两个变量的和 | [变量1] + [变量2] | 两个数值变量 | 两数之和 | 5 + 3 | 8 |
| 减法 | 计算两个变量的差 | [被减数] - [减数] | 被减数和减数 | 两数之差 | 5 - 3 | 2 |
| 乘法 | 计算两个变量的乘积 | [变量1] × [变量2] | 两个数值变量 | 两数之积 | 5 × 3 | 15 |
注:使用除法和取余时需要注意除数为0的情况,否则计算不出来结果
举例
混合运算:先乘除后加减 [变量A] + [变量B] * [变量C] - [变量D] / [变量E]
使用括号改变运算顺序 ([变量A] + [变量B]) * ([变量C] - [变量D])
2. 指数运算
用法:Math.pow([底数变量], [指数变量])
示例:[底数变量]值为2,[指数变量]值为3,Math.pow([底数变量], [指数变量]) 预期返回值 8
三、数学函数表达式
3.1. 三角函数
| 功能 | 用法 | 示例 |
|---|---|---|
| 正弦值 | Math.sin([角度变量]) | [角度变量]设为1.5708,Math.sin([角度变量]) 返回 1 |
| 余弦值 | Math.cos([角度变量]) | [角度变量]设为0,Math.cos([角度变量]) 返回 1 |
| 正切值 | Math.tan([角度变量]) | [角度变量]设为0.7854,Math.tan([角度变量]) 返回 1 |
3.2. 对数/指数函数
| 功能 | 用法 | 示例 |
|---|---|---|
| 自然对数 | Math.log([数值变量]) | [数值变量]设为2.71828,Math.log([数值变量]) 返回 1 |
| 10为底的对数 | Math.log10([数值变量]) | [数值变量]设为100,Math.log10([数值变量]) 返回 2 |
| e的指数次方 | Math.exp([指数变量]) | [指数变量]设为1,Math.exp([指数变量]) 返回 2.71828 |
3.3. 数值处理函数
| 功能 | 用法 | 示例 |
|---|---|---|
| 向下取整 | Math.floor([数值变量]) | [数值变量]设为5.8,Math.floor([数值变量]) 返回 5 |
| 向上取整 | Math.ceil([数值变量]) | [数值变量]设为5.2,Math.ceil([数值变量]) 返回 6 |
| 四舍五入取整 | Math.round([数值变量]) | [数值变量]设为5.4,Math.round([数值变量]) 返回 5 |
| 计算绝对值 | Math.abs([数值变量]) | [数值变量]值为-5,Math.abs([数值变量]) 预期返回值 5 |
3.4. 极值处理函数
| 功能 | 用法 | 示例 |
|---|---|---|
| 从多个数中找出最大值 | Math.max([变量1], [变量2], [变量3], ...) | [变量1]设为5,[变量2]设为8,[变量3]设为3 返回 8 |
| 从多个数中找出最小值 | Math.min([变量1], [变量2], [变量3], ...) | [变量1]设为5,[变量2]设为8,[变量3]设为3 返回 3 |
3.5. 进制转换
| 功能 | 用法 | 示例 |
|---|---|---|
| 将指定进制转换为数字 | parseInt([字符串变量], [基数]) | [字符串变量]设为"1010",[基数]设为2(该字符串是二进制字符串) 返回 10(二进制1010转十进制) |
| 将数字转换为指定进制 | [数字变量].toString([基数]) | [数字变量]设为10,[基数]设为2 返回 "1010"(十进制10转二进制字符串) |
常用进制对照: 二进制:只有0和1 八进制:0-7 十进制:0-9(默认) 十六进制:0-9,A-F
四.逻辑运算
注意: 根据现有组件动态属性绑定的设计,所有Boolean类型结果最终会转为1或者0,如需显示true或false文本需要使用三元表达式返回字符串。
示例: ([变量1] > [变量2]) ? 'true' : 'false'
4.1 比较运算
| 功能 | 用法 | 说明 |
|---|---|---|
| 大于 | [数值1] > [数值2] | 无 |
| 大于等于 | [数值1] >= [数值2] | 无 |
| 小于 | [数值1] < [数值2] | 无 |
| 小于 | [数值1] <= [数值2] | 无 |
| 等于 | [数值1] == [数值2] | 无 |
| 严格等于 | [数值1] === [数值2] | [数值1]设为5,[数值2]设为字符串"5",返回 false(类型不同) |
| 不等于 | [数值1] != [数值2] | 无 |
| 严格不等于 | [数值1] !== [数值2] | [数值1]设为5,[数值2]设为字符串"5",返回 true(类型不同) |
4.2 逻辑运算
| 功能 | 用法 |
|---|---|
| 逻辑与 | [条件1] && [条件2] |
| 逻辑或 | [条件1] || [条件2] |
| 逻辑非 | ![条件] |
4.3 三元表达式
用法: [条件] ? [值1] : [值2]
示例:[条件]设为true,[值1]设为"成功",[值2]设为"失败",返回 "成功"
实际应用举例: 根据温度显示不同文字:[温度值变量] > 70 ? "温度过高":"温度正常"
五.其他功能
5.1位运算
| 功能 | 用法 | 说明 |
|---|---|---|
| 按位与 | [数值1] & [数值2] | [数值1]设为5(二进制101),[数值2]设为3(二进制011)返回 1(二进制001) |
| 按位或 | [数值1] | [数值2] | [数值1]设为5,[数值2]设为3 返回 7(二进制111) |
| 按位异或 | [数值1] ^ [数值2] | [数值1]设为5,[数值2]设为3 返回 6(二进制110) |
5.2 随机数
| 功能 | 用法 | 说明 |
|---|---|---|
| 生成0-1之间的随机小数 | Math.random() | 可能返回 0.123456、0.789012 等 |
| 生成1-10的随机整数 | Math.floor(Math.random() * 10) + 1 | 可能返回 1、5、10 等 |
