Flash ActionScript3 殿堂之路2

重點筆記
p02-31餘數運算子 %
需注意運算元若不是整數,可能會出現意外的結果。
ex:
var a:int=13;
trace(a%5)//3
trace(13.1%5)//3.0999999999999996,不是3.1
trace(12.2%6.1)//0,剛好整除
trace(12.5%6.1)//0.3000000000000007

p02-33全等運算子(===)與等於運算子(==)
全等運算子不會做型別轉換;而等於運算子會自動做型別轉換。
若運算元是int、uint、Number這三種整數型別,則數值相等就回傳true(不論型別是否相同)
ex:
var a:int=1;
var b:String='1';
var c:Boolean=true;
trace(a==b);//回傳true,書本範例這樣寫會回傳true,但我compiler無法通過??
trace(a===b);//回傳false
書本範例這樣寫會回傳false,但我compiler無法通過??
trace(a==c);//回傳true
trace(a===c)//回傳false

若兩邊的運算元的值是Nan時(Number型別),則兩種運算子都會回傳false
若兩邊的運算元的值是null及underfined,則全等運算子(===)會回傳false;而等於運算子(==)會回傳true
ex:
trace(NaN==NaN); //false
trace(NaN===NaN);//false
trace(undefined==null)//true
trace(undefined===null)//false


若是比較使用包裝類別來建立的物件,直接使用全等運算子(===)和等於運算子(==)比較的話,會回傳true。(在Java及AS2.0會回傳false)
ex:
var a=new Number(5);
var b=new Number(5);
trace(a==b);//true
trace(a===b);//true

Category:

0 意見: