Skip to content

表达式

概述

织信采用UEL(统一表达式语言)语法的表达式,UEL在语法和语义上类似于JavaScript表达式。

特点

  • 无需类型转换;转换通常是隐式的完成
  • 双引号和单引号用法相同
  • object.propertyobject['property']的意义相同
  • ${}之外的部分会按照字符串的形式返回

下面是统一表达式语言的一个简单的例子:

对象

javascript
let person = {
  name: '张三',
  age: 18
}

类型返回

表达式可以直接声明并返回变量

字符串拼接

织信中的表达式分为在客户端执行在服务器端执行两种情况,在客户端执行时可以在表达式中使用+可以将字符串和任意对象拼接为新的字符串。例如

注意

在服务器端执行时不支持使用+字符串拼接

javascript
${'123'+'456'} //返回'579'

如果需要执行字符串拼接需要使用String.concat(s1,s2)

javascript
${String.concat('123','456')} //返回'123456'

运算符

INFO

  • 运算: +(加法), - (减法), *(乘法), /(除法), %(取模)
  • 逻辑: &&(并且), ||(或者), !(取反)
  • 关系: ==(等于), !=(不等于), <(小于), >(大于) <=(小于等于), >=(大于等于)
  • 空值: null(空值)
  • 条件判断: A ? B : C. 返回 B or C, 如果A为true 返回B,否则返回C

保留关键字

保留关键字不能作为变量名

保留关键字

and or not true false null empty div mod in matches eq ne lt gt le ge class

除0异常

在除法操作中,如果除数是0的话会抛出异常

运算示例

表达式结果
1 > (4/2)false
4.0 >= 3true
100.0 == 100true
(10*10) ne 100false
4 > 3true
1 + 2 > 2 - 1true
1 < 2 && 2 > 1true
1 < 2false
2 > 1true
'a' < 'b'true
1 + 23
1.2E4 + 1.412001.4
3 / 40.75
10 % 42

函数调用

织信提供了Math Array Date Misc String User Encode Record等对象来处理关于数学运算、数组、日期等方面的函数运算。函数调用过程如果发生异常,系统会回滚当前事务。以下是一个函数调用的示例

javascript
${Math.abs(-100)}//返回100