1. 运算符的本质:运算符本身就是一个特殊的函数,运算对象就是它的参数,运算结果就是它的返回值。
2. 对于模运算,如果运算对象不是整数,结果可能会出现意外的小数。如果两边是浮点数且恰好是整数倍,得到的结果也是0,正确。其实对于加减乘除,如果运算对象相差较大,结果也可能会出现意外的小数,而并不是期望的值。
3. 关系运算符
(1) == 、!=、===、!==
3.1 == 、!= :对于基础数据类型,如果值相等,即可判定相等,若是不同类型的值,还会进行类型的转换,例如字符串和布尔值与数字比较时,字符串会尝试转换成数字,布尔值转换为0或1;对于引用类型,要看等式两边的对象引用是否相同。
3.2 ===、!== :全等运算符,不执行类型转换,不仅要值相等,数据类型也要一样才相等。但是int、uint、Number类型值相同,也会认为相等。
3.3 NaN、null和undefined比较
无论是等于还是全等,NaN与任何比较都返回false;
null == null、null === null比较返回true;
undefined == undefined、undefined === undefined比较返回true;
null == undefined返回true,null === undefined返回false。
3.4 基本类型的对象相比较,AS3会自动调用它们的值进行判断,若值相等,仍返回true
(2)>、<、>=、<=
3.5 非数值的运算对象会尽量转换为数值,然后再进行数值比较;无法转换为数值时,返回false
3.6 如果两边运算对象都是字符串的话,那么从左到右逐个比较字符