开学特惠 会员低至4.4折 限时加赠 10000 AI积分 立即前往 arrow
跳至正文

原型 · 交互效果

原型交互表达式使用指南

一、表达式能做什么?

表达式就像原型中的"智能公式",让静态元素活起来!可以实现多种效果,例如:

动态计算

📦 购物车自动计算总价

🔊 音量条实时缩放

📊 进度条动态变化

智能判断

✅ 登录状态验证

🔒 表单必填项检查

📱 设备适配判断

动态内容

👋 "欢迎XXX"个性化问候

📅 动态时间显示

🎲 随机内容生成

二、基础运算符表

运算符 适用于的表达式模式 说明
+ 字符串 连接字符串
+ 数字 加
- 数字 减
* 数字 乘
/ 数字 除
== 布尔值 等于
!= 布尔值 不等于
&& 布尔值 且
|| 布尔值 或
! 布尔值 非
> 布尔值 大于
< 布尔值 小于
>= 布尔值 大于或等于
<= 布尔值 小于或等于
+ 布尔值 加
- 布尔值 减
* 布尔值 乘
/ 布尔值 除
+ 布尔值 连接字符串

三、5分钟上手案例

示例:用户在登录框输入用户名后,在界面上展示"欢迎xxx"文字

  1. 创建字符串变量,名称为"账号",默认值设置为空

  2. 新建单行输入组件,文本绑定变量"账号"

  3. 新建文本组件,文本绑定变量"账号"

  4. 新建按钮,命名为登录,设置单击触发交互,行为是设置变量值,目标变量"账号",值的表达式设置为**"欢迎"+ 账号**

三、5分钟上手案例操作界面

注意:

  1. 欢迎这个文本需要添加上英文"或'符号。

  2. 数字不需要添加,直接输入数字。

  3. 布尔变量直接输入true,false,不需要添加其他符号。

四、函数表

在表达式中,预置了部分函数,可以进行处理和计算。运算逻辑与JavaScript类似。

四、函数表操作界面

支持的函数列表如下:

函数选项 参数及其类型 函数返回值(函数类型) 说明信息
文本处理
字符串.length 无参数 数字 返回字符串的长度(字符数量)
字符串.charAt(索引) 索引: 数字 字符串 返回字符串中指定索引位置的字符
字符串.charCodeAt(索引) 索引: 数字 数字 返回指定索引位置字符的 Unicode 编码
字符串1.concat(字符串2) 字符串2: 字符串 字符串 用于连接两个或多个字符串,返回一个新的字符串
字符串.endsWith(子字符串, 长度[可选]) 子字符串: 字符串, 长度 (可选): 数字 布尔值 检查字符串是否以指定的子字符串结尾,返回布尔值
字符串.includes(子字符串, 起始索引[可选]) 子字符串: 字符串, 起始索引(可选): 数字 布尔值 检查字符串是否包含指定的子字符串
字符串.indexOf(子字符串, 起始索引[可选]) 子字符串: 字符串, 起始索引(可选): 数字 数字 返回子字符串在字符串中的首次出现位置的索引,如果未找到则返回 -1
字符串.lastIndexOf(子字符串, 起始索引[可选]) 子字符串: 字符串, 起始索引(可选): 数字 数字 返回子字符串在字符串中最后一次出现位置的索引,如果未找到则返回 -1
字符串.padEnd(目标长度, 填充值[可选]) 目标长度: 数字, 填充值(可选): 字符串 字符串 在字符串的末尾填充指定的字符直到达到目标长度
字符串.padStart(目标长度, 填充值[可选]) 目标长度: 数字, 填充值(可选): 字符串 字符串 在字符串的开头填充指定的字符直到达到目标长度
字符串.repeat(次数) 次数: 数字 字符串 返回一个新字符串,表示原字符串重复指定次数
字符串.replace(子字符串, 替换值) 子字符串: 字符串, 替换值: 字符串 字符串 替换字符串中匹配的子字符串或正则表达式,并返回替换后的新字符串。(注意:只会替换第一个匹配项)
字符串.replaceAll(子字符串, 替换值) 子字符串: 字符串, 替换值: 字符串 字符串 替换字符串中所有匹配的子字符串或正则表达式,并返回替换后的新字符串
字符串.slice(开始索引, 结束索引[可选]) 开始索引: 数字, 结束索引(可选): 数字 字符串 提取字符串的子字符串,从开始索引到结束索引(不包括结束索引)
字符串.startsWith(子字符串, 起始索引[可选]) 子字符串: 字符串, 起始索引(可选): 数字 布尔值 检查字符串是否以指定的子字符串开头,返回布尔值
字符串.substring(开始索引, 结束索引[可选]) 开始索引: 数字, 结束索引(可选): 数字 字符串 提取字符串中两个索引之间的子字符串(不包括结束索引)
字符串.toLowerCase() 无参数 字符串 将字符串转换为小写形式
字符串.toUpperCase() 无参数 字符串 将字符串转换为大写形式
字符串.trim() 无参数 字符串 去除字符串两端的空白字符
字符串.trimStart() 无参数 字符串 去除字符串开头的空白字符
字符串.trimEnd() 无参数 字符串 去除字符串末尾的空白字符
数字处理
数字.toExponential(小数位数[可选]) 小数位数(可选): 数字 字符串 将一个数字转换为指数表示法的字符串形式。
数字.toFixed(小数位数[可选]) 小数位数(可选): 数字 字符串 将数字四舍五入到指定的小数位数,并返回字符串表示形式。
数字.toPrecision(有效位数[可选]) 有效位数(可选): 数字 字符串 将数字格式化为指定的精度,并以字符串形式返回。
数学运算
Math.abs(数字) 数字: 数字 数字 返回数字的绝对值
Math.acos(数字) 数字: 数字 数字 返回数字的反余弦值(以弧度为单位)
Math.asin(数字) 数字: 数字 数字 返回数字的反正弦值(以弧度为单位)
Math.atan(数字) 数字: 数字 数字 返回数字的反正切值(以弧度为单位)
Math.atan2(数字y, 数字x) 数字y: 数字, 数字x: 数字 数字 返回从 x 轴到点 (x, y) 的角度(弧度)
Math.ceil(数字) 数字: 数字 数字 返回大于或等于指定数字的最小整数(向上取整)
Math.cos(数字) 数字: 数字 数字 返回指定角度(以弧度为单位)的余弦值
Math.exp(数字) 数字: 数字 数字 返回 E 的指定次幂(即 e^数字)。
Math.floor(数字) 数字: 数字 数字 返回小于或等于指定数字的最大整数(向下取整)
Math.log(数字) 数字: 数字 数字 返回数字的自然对数(即以 E 为底)。
Math.max(数字1, 数字2, ...) 数字n: 数字 数字 返回一组数字中的最大值
Math.min(数字1, 数字2, ...) 数字n: 数字 数字 返回一组数字中的最小值
Math.pow(基数, 指数) 基数: 数字, 指数: 数字 数字 返回基数的指数次幂(即 基数^指数)。
Math.random() 无参数 数字 返回范围在 [0, 1) 的随机小数。
Math.round(数字) 数字: 数字 数字 返回最接近数字的整数值(四舍五入)。
Math.sqrt(数字) 数字: 数字 数字 返回数字的平方根
Math.sign(数字) 数字: 数字 数字 返回数字的符号:1(正数)、-1(负数)、0(零)。
Math.sin(数字) 数字: 数字 数字 返回指定角度(以弧度为单位)的正弦值。
Math.tan(数字) 数字: 数字 数字 返回指定角度(以弧度为单位)的正切值。
时间和日期
$date.getDate() 无参数 数字 返回当前日期对象的日期(1-31)。
$date.getDay() 无参数 数字 返回当前日期对象是周几(0 表示周日,6 表示周六)。
$date.getFullYear() 无参数 数字 返回当前日期对象的年份(四位数)。
$date.getHours() 无参数 数字 返回当前日期对象的小时数(0-23)。
$date.getMilliseconds() 无参数 数字 返回当前日期对象的毫秒(0-999)。
$date.getMinutes() 无参数 数字 返回当前日期对象的分钟(0-59)。
$date.getMonth() 无参数 数字 返回当前日期对象的月份(0 表示 1 月,11 表示 12 月)。
$date.getSeconds() 无参数 数字 返回当前日期对象的秒(0-59)。
$date.getTime() 无参数 数字 返回自 Unix 时间以来的毫秒数。
$date.getTimezoneOffset() 无参数 数字 返回当前时区与 UTC 的时间差,以分钟为单位。
$date.getUTCDate() 无参数 数字 返回当前日期对象的 UTC 日期(1-31)。
$date.getUTCDay() 无参数 数字 返回当前日期对象的 UTC 星期几(0 表示周日,6 表示周六)。
$date.getUTCFullYear() 无参数 数字 返回当前日期对象的 UTC 年份(四位数)。
$date.getUTCHours() 无参数 数字 返回当前日期对象的 UTC 小时(0-23)。
$date.getUTCMilliseconds() 无参数 数字 返回当前日期对象的 UTC 毫秒(0-999)。
$date.getUTCMinutes() 无参数 数字 返回当前日期对象的 UTC 分钟(0-59)。
$date.getUTCMonth() 无参数 数字 返回当前日期对象的 UTC 月份(0 表示 1 月,11 表示 12 月)。
$date.getUTCSeconds() 无参数 数字 返回当前日期对象的 UTC 秒(0-59)。
$date.setDate(日期) 日期: 数字 数字 设置当前日期对象的日期部分(1-31),并更新日期对象。
$date.setFullYear(年, 月[可选], 日[可选]) 年: 数字, 月, 日: 数字(可选) 数字 设置当前日期对象的年份,并可同时设置月份和日期。
$date.setHours(小时, 分[可选], 秒[可选], 毫秒[可选]) 小时: 数字, 分, 秒, ...: 数字(可选) 数字 设置当前日期对象的小时,并可同时设置分钟、秒和毫秒。
$date.setMilliseconds(毫秒) 毫秒: 数字 数字 设置当前日期对象的毫秒部分
$date.setMinutes(分, 秒[可选], 毫秒[可选]) 分: 数字, 秒, 毫秒: 数字(可选) 数字 设置当前日期对象的分钟,并可同时设置秒和毫秒。
$date.setMonth(月, 日[可选]) 月: 数字, 日: 数字(可选) 数字 设置当前日期对象的月份,并可同时设置日期。
$date.setSeconds(秒, 毫秒[可选]) 秒: 数字, 毫秒: 数字(可选) 数字 设置当前日期对象的秒,并可同时设置毫秒。
$date.setTime(毫秒数) 毫秒数: 数字 数字 设置当前日期对象的时间为自 Unix 时间以来的毫秒数。
$date.setUTCDate(日期) 日期: 数字 数字 设置当前日期对象的 UTC 日期部分。
$date.setUTCFullYear(年, 月[可选], 日[可选]) 年: 数字, 月, 日: 数字(可选) 数字 设置当前日期对象的 UTC 年份,并可同时设置月份和日期。
$date.setUTCHours(小时, 分[可选], 秒[可选], 毫秒[可选]) 小时: 数字, 分, 秒, ...: 数字(可选) 数字 设置当前日期对象的 UTC 小时,并可同时设置分钟、秒和毫秒。
$date.setUTCMilliseconds(毫秒) 毫秒: 数字 数字 设置当前日期对象的 UTC 毫秒部分。
$date.setUTCMinutes(分, 秒[可选], 毫秒[可选]) 分: 数字, 秒, 毫秒: 数字(可选) 数字 设置当前日期对象的 UTC 分钟,并可同时设置秒和毫秒。
$date.setUTCMonth(月, 日[可选]) 月: 数字, 日: 数字(可选) 数字 设置当前日期对象的 UTC 月份,并可同时设置日期。
$date.setUTCSeconds(秒, 毫秒[可选]) 秒: 数字, 毫秒: 数字(可选) 数字 设置当前日期对象的 UTC 秒,并可同时设置毫秒。
$date.toDateString() 无参数 字符串 返回日期对象的日期部分字符串表示(例如:"Fri Oct 13 2023")。
$date.toISOString() 无参数 字符串 返回日期对象的字符串表示,以 ISO 标准表示(例如:"2023-10-13T15:00:00.000Z")。
$date.toJSON() 无参数 字符串 返回日期对象的字符串表示(等价于 .toISOString() 方法)。
$date.toLocaleDateString(本地化设置[可选]) 本地化设置: 字符串(可选) 字符串 根据本地化设置返回日期部分的字符串表示。
$date.toLocaleString(本地化设置[可选]) 本地化设置: 字符串(可选) 字符串 根据本地化设置返回完整日期和时间的字符串表示
$date.toLocaleTimeString(本地化设置[可选]) 本地化设置: 字符串(可选) 字符串 根据本地化设置返回时间部分的字符串表示。
$date.toString() 无参数 字符串 返回日期对象为字符串形式的表示。
$date.toTimeString() 无参数 字符串 返回时间部分的字符串表示(例如:"10:00:00 GMT+0800 (China Standard Time)")。
$date.toUTCString() 无参数 字符串 返回日期对象的 UTC 时间字符串表示。

五、预置变量表

对于一些系统参数,提供了预置变量可以进行调用,例如鼠标的位置信息。

包含以下变量:

预置变量选项 中文名称 返回值(类型) 说明
$mouseX 鼠标指针X 数字 返回鼠标所在位置的X轴坐标(相对于视口)
$mouseY 鼠标指针Y 数字 返回鼠标所在位置的Y轴坐标(相对于视口)
$mousePageX 鼠标指针X(页面) 数字 返回鼠标所在位置的X轴坐标(相对于页面,包括滚动距离)
$mousePageY 鼠标指针Y(页面) 数字 返回鼠标所在位置的Y轴坐标(相对于页面,包括滚动距离)
$pi 圆周率 数字 返回圆周率 π
$deviceHeight 视口高度 数字 返回当前演示设备(视口)的高度
$deviceWidth 视口宽度 数字 返回当前演示设备(视口)的宽度
$pageScrollX 页面滚动距离X 数字 返回演示页面水平滚动的距离
$pageScrollY 页面滚动距离Y 数字 返回演示页面垂直滚动的距离
$containerScrollX 容器滚动距离X 数字 返回父级容器水平滚动的距离
$containerScrollY 容器滚动距离Y 数字 返回父级容器垂直滚动的距离

六、常用场景示例

场景1:密码校验

密码输入.trim().length >= 6 && 密码输入 == 确认密码

场景2:输入框是否输入文字校验

变量A.trim().length > 0

场景3:包含特定文本

是否包含特定文本:变量A.includes('keyword')

场景4:获取本机系统时间

$date.toTimeString()

场景5:返回1-1000的随机整数

Math.ceil(Math.random() * 1000)

场景6:生成6位随机验证码

Math.floor(Math.random()*900000+100000)

场景7:元素跟随鼠标移动

变换元素位置x为mousePageX,y为mousePageY

七、使用技巧

运算优先级

整体上从左到右执行,基本数学运算按以下顺序执行:

  1. 括号

  2. 乘法/除法

  3. 加法/减法

布尔表达式操作符按以下顺序执行:

  1. 括号

  2. 比较( == 、!=、>、< 等)

  3. 与(&&)

  4. 或(||)

示例1:x + y * z,首先,将y乘以z。然后,加上x。

示例2:x == (y > z),首先,评估y是否大于z。然后,评估x是否等于y > z的解。

通过掌握这些表达式技巧,您将能轻松实现:

✅ 动态数据展示 ✅ 智能表单验证

✅ 复杂交互逻辑 ✅ 个性化内容生成

建议保存本指南作为速查手册,遇到问题时快速定位解决方法!

返回帮助中心,继续查找教程 →