ようやくCS3を導入しました。
周回遅れを取り戻さないと。
AS2からAS3への移行についてのカテゴリを増やして、
どんどんメモっていく予定。
/* 未定義のNumber型のデフォルト値が、AS3ではNaNに変わった。
* AS2ではundefinedを返していた。
* AS2で初期化の有無を調べるためにundefinedと評価していた人は注意!
*/
//未初期化のNumber
var num:Number;
//AS2ではundefined、AS3ではNaNを返す。
//AS2で初期化の有無を調べるためにundefinedと評価していた人は注意!
trace("Number ---------");
trace("the default value of Number is " + num);
trace("the default value of Number is 'undefined' : " + (num == undefined));
trace("the default value of Number is 'NaN' : " + isNaN(num));
//未初期化のObject
var obj:Object;
//AS2ではundefined、AS3ではnullを返す。
//ただし、undefined == null は true を返すため、
//初期化の有無を調べるためにundefinedと評価することができる。
trace("\nObject ---------");
trace("the default value of Object is " + obj);
trace("the default value of Object == 'undefined' : " + (obj == undefined));
trace("the default value of Object === 'undefined' : " + (obj === undefined));
//未初期化のString
var str:String;
//AS2ではundefined、AS3ではnullを返す。
//Objectと同じ。
trace("\nString ---------");
trace("the default value of String is " + str);
trace("the default value of String == 'undefined' : " + (str == undefined));
trace("the default value of String === 'undefined' : " + (str === undefined));
/* output
* Number ---------
* the default value of Number is NaN
* the default value of Number is 'undefined' : false
* the default value of Number is 'NaN' : true
*
* Object ---------
* the default value of Object is null
* the default value of Object == 'undefined' : true
* the default value of Object === 'undefined' : false
*
* String ---------
* the default value of String is null
* the default value of String == 'undefined' : true
* the default value of String === 'undefined' : false
*
*/