跳到主要内容

操作符

在脚本中有以下多种类型的操作符:

算术运算符

运算符描述格式示例
+执行加法运算a + b例如:1 + 3返回4
-执行减法运算a - b例如:5 - 1返回4
*执行乘法运算a * b例如:2 * 2返回4
/执行除法运算a / b例如:8 / 2返回4
%执行取模运算a % b例如:19 % 5返回4

位运算符

运算符描述示例
&执行按位与运算例如 33 & 4结果为0
``执行按位或运算
^执行按位异或运算例如 33 ^ 4结果为37
~执行按位取反运算例如 ~33结果为-34
<<执行左移运算例如 1 << 2结果为4
>>执行右移运算例如 4 >> 2结果为1
>>>执行无符号右移运算例如 -8 >>> 2 结果为 1073741820

赋值运算符

运算符描述示例
=执行赋值运算例如: b = 4 a = b 结果 a = 4
+=执行加法并将结果赋值给左侧操作数例如 a += 2 等价于 a = a + 2
-=执行减法并将结果赋值给左侧操作数例如 a -= 2 等价于 a = a - 2
*=执行乘法并将结果赋值给左侧操作数例如 a *= 2 等价于 a = a * 2
/=执行除法并将结果赋值给左侧操作数例如 a /= 2 等价于 a = a / 2
%=执行取模并将结果赋值给左侧操作数例如 a %= 2 等价于 a = a % 2
&=执行按位与操作并将结果赋值给左侧操作数例如 a &= 2 等价于 a = a & 2
`=`执行按位或操作并将结果赋值给左侧操作数
^=执行按位异或操作并将结果赋值给左侧操作数例如 a ^= 2 等价于 a = a ^ 2
<<=执行左移操作并将结果赋值给左侧操作数例如 a <<= 2 等价于 a = a << 2
>>=执行右移操作并将结果赋值给左侧操作数例如 a >>= 2 等价于 a = a >> 2
>>>执行无符号右移操作并将结果赋值给左侧操作数例如 a >>>= 2 等价于 a = a >>> 2

比较运算符

运算符描述示例
==检查两个操作数是否相等,返回布尔结果。不同类型的操作数会尝试进行转换后比较例如 3 == 5结果为false
!=检查两个操作数是否不相等,返回布尔结果。不同类型的操作数会尝试进行转换后比较例如 3 != 5结果为true
===检查两个操作数是否相等,返回布尔结果。不同类型的操作数总是被认为是不相等的例如 3 === 5结果为false
!==检查两个操作数是否不相等,返回布尔结果。不同类型的操作数总是被认为是不相等的例如 3 !== 5结果为true
<检查左侧操作数是否小于右侧操作数,返回布尔结果。例如 3 < 4结果为true
<=检查左侧操作数是否小于或等于右侧操作数,返回布尔结果。例如 3 <= 4结果为true
>检查左侧操作数是否大于右侧操作数,返回布尔结果。例如 2 > 4结果为false
>=检查左侧操作数是否大于或等于右侧操作数,返回布尔结果。例如 2 >= 4结果为false
=~操作符检查字符串是否匹配正则表达式例如"abcdef" =~ "abc.*" 返回 true
!~操作符检查字符串是否不匹配正则表达式例如 "abcdef" !~ "abc.*" 返回 false
=^操作符检查字符串是否以某个子字符串开头例如 "abcdef" =^ "abc" 返回 true
!^操作符检查字符串是否不以某个子字符串开头例如 "abcdef" !^ "abc" 返回 false
=$操作符检查字符串是否以某个子字符串结尾例如 "abcdef" =$ "def" 返回 true
!$操作符检查字符串是否不以某个子字符串结尾例如 "abcdef" !$ "def" 返回 false

逻辑运算符

运算符描述示例
and / &&布尔与运算符,检查两个条件是否都为 true,如果是则结果为 true,否则为 false。此操作符不能被重载。例如 cond1 and cond2cond1 && cond2,当 cond1cond2 都为 true 时结果为 true
or / ``
not / !布尔非运算符,检查条件是否为 false,如果是则结果为 true,否则为 false。此操作符不能被重载。例如 not cond1!cond1,当 cond1false 时结果为 true
?:三元条件运算符,根据条件的布尔值返回不同的结果。条件为 true 时返回第一个值,否则返回第二个值。例如 val1 ? val1 : val2val1 ?: val2,当 val1 不为 nullfalse 时结果为 val1
??空合并运算符,返回第一个操作数的值,如果它是定义的且不为 null。否则返回第二个值。例如 x ?? 'default',当 xnullundefined 时返回 'default'

特殊运算符

运算符描述示例
empty使用 empty 操作符检查值是否为空,等效于 empty() 函数。例如 empty argempty(arg) 是等价的。
size使用 size 操作符检查集合的大小,等效于 size() 函数。例如 size [1,2,3]size([1,2,3]) 是等价的。
instanceof使用 instanceof 操作符检查对象是否属于某个类,也支持 !instanceof例如 obj instanceof MyClass