Flash ActionScript 运算符详解

● 运算符详解 ●

1、算术运算符:
- 取负 -e­xpression
+ 加 e­xpression1 + e­xpression2
- 减 e­xpression1 - e­xpression2
* 乘 e­xpression1 * e­xpression2
/ 除 e­xpression1 / e­xpression2
% 求余 e­xpression1 % e­xpression2 12 % 5 -> 2
?: 定向运算符 e­xpression1 ? e­xpression2 : e­xpression3
当e­xpression1的值为true时取e­xpression2,否则取e­xpression3

2、逻辑运算符:(注:括号中为旧版本写法)
!(not) 逻辑非 !e­xpression
&&(and) 逻辑与 e­xpression1 && e­xpression2
||(or) 逻辑或 e­xpression1 || e­xpression2
!=(<>) 不相等 e­xpression1 != e­xpression2
== 相等 e­xpression1 == e­xpression2
< 小于 e­xpression1 < e­xpression2
> 大于 e­xpression1 > e­xpression2
<= 小于等于 e­xpression1 <= e­xpression2
>= 大于等于 e­xpression1 >= e­xpression2

说明:在使用&&(||)时,若表达式e­xpression1已为false(true)值,则不再计
算e­xpression2的值,直接返回false(true)。否则,继续计算e­xpression2的值,再
作逻辑与(或)运算。

3、字符串运算符:(注:括号中为新版本中的符号表示法)
"", '' 引号 用于表示字符串
add(+) 字符串叠加 e­xpression1 add e­xpression2 "1" add "2" -> "12"
eq(==) 字符串相等 e­xpression1 eq e­xpression2
ne(!=) 字符串不相等 e­xpression1 ne e­xpression2
lt(<) 字符串小于 e­xpression1 lt e­xpression2 "12" lt "2" -> true
gt(>) 字符串大于 e­xpression1 gt e­xpression2 "12" gt "1" -> true
le(<=) 字符串小于等于 e­xpression1 le e­xpression2
ge(>=) 字符串大于等于 e­xpression1 ge e­xpression2

说明:字符串在比较时,按从左到右一个个字符比较ASCII码。若遇到不同,就返
回ASCII码大小比较的结果。如果直到一个字符串结束时都相等,则若另一个字符串也
结束,就表示相等,否则,已结束字符串较大。
虽然字符串运算符可用相应的符号表示,但在使用上有一定区别。用字母表
示的运算符在处理时先将两个表达式都转化为字符串后再作运算或比较。而用符号表示
的运算符在处理时若有一个表达式为数值,就将另一个表达式转化为数值再作运算或比
较。比如:19 > 2的值为true,而19 gt 2的值为false。

4、位运算符:
~ 按位取反 ~e­xpression 按位1->0,0->1
& 按位与 e­xpression1 & e­xpression2 按位11->1,10->0,01->0, 00->0
| 按位或 e­xpression1 | e­xpression2 按位11->1,10->1,01->1, 00->0
^ 按位异或 e­xpression1 ^ e­xpression2 按位11->0,10->1,01->1, 00->0
<< 按位左移 e­xpression << num 左移num位,右补0
>> 按位算术右移 e­xpression >> num 右移num位,左补符号位
>>> 按位逻辑右移 e­xpression >>> num 右移num位,左补0

说明:按位运算表示将两个表达式的值转化为数值后按二进制的位进行运算。比如
12 & 34 -> 2,由于12的二进制为01010,34的二进制为10010,所以按位与后为00010
即2。按位移动时num的取值为0~31

5、赋值运算符:
++ 自加 variable++,++variable 相当于variable = variable + 1
-- 自减 variable--,--variable 相当于variable = variable - 1
+= 自加赋值 variable += e­xpression 等价于varaible = variable + e­xpression
-= 自减赋值 variable -= e­xpression 等价于varaible = variable - e­xpression
*= 自乘赋值 variable *= e­xpression 等价于varaible = variable * e­xpression
/= 自除赋值 variable /= e­xpression 等价于varaible = variable / e­xpression
%= 自求余赋值 variable %= e­xpression 等价于varaible = variable % e­xpression
&= 自按位与赋值 variable &= e­xpression 等价于varaible = variable & e­xpression
|= 自按位或赋值 variable |= e­xpression 等价于varaible = variable | e­xpression
^= 自按位异或赋值 variable ^= e­xpression 等价于varaible = variable ^ e­xpression
<<= 自按位左移赋值 variable <<= num 等价于varaible = variable << num
>>= 自按位算术右移赋值 variable >>= num 等价于varaible = variable >> num
>>>= 自按位逻辑右移赋值 variable >>>= num 等价于varaible = variable >>> num

说明:自加和自减的两种用法在返回值上有区别。variable++(--)返回variable未
更改前的值,++(--)variable返回variable更改后的值。

6、括号运算符:
() 小括号
用法1:用于重置表达式运算的优先级
如:(a + 3) * 4
用法2:用于包含函数的参数
如:function func(var1, var2) {...}
date = getDate();

[] 中括号
用法1:用于定义及初始化数组
如:myArray = [] <=> myArray = new Array()
myArray = ["red", "orange", "yellow"]
用法2:用于获取数组中的项
如:myArray[0] = "red"
用法3:用于获取对象或影片片段的成员
如:account = myObject["account"] <=> account = myObject.account
_root["mc" + 1]["_x"] = 30 <=> _root.mc1._x = 30

{} 大括号
用法1:用于界定语句段范围(用在复合语句与函数体定义中)
如:if (a == 2) {a = 3; b = 4; ...}
function myFunc() {...}
用法2:用于定义及初始化对象
如:myObj = {} <=> myObject = new Object()
person = {name:"Peter", child:"Amy"}

7、其他运算符:
; 分号 statement1; statement2 用于分隔同一行内的两个语句
, 逗号 e­xpression1, e­xpression2 用于在一个语句内分隔两个表达式
. 点运算符 obj_mc.member 用于连接对象(影片片段)和其成员(属性)
typeof 获取类型 typeof(e­xpression) 返回表达式的值的类型(字符串表示)
未定义 "undefined"
空值 "null"
数值 "number"
字符串 "string"
对象 "object"
函数 "function"
影片片段 "movieclip"
void 未定义值 void(e­xpression) 返回未定义值
[本日志由 Admin 于 2010-08-26 11:52 PM 编辑]
上一篇: Flash ActionScript 时间对象详解
下一篇: Flash ActionScript 自定义对象详解
文章来自: 网络
引用通告: 查看所有引用 | 我要引用此文章
Tags: Flash ActionScript
相关日志:
评论: 0 | 引用: 0 | 查看次数: 7701