彩音 - Adobe AIR - 研究室:XION -Adobe AIR-laboratory
データ型のチェック:is、as、typeof

実行中に値のデータ型をチェックしたい場合には、目的に応じて is、as、typeofの演算子を使う。

is演算子

データ型が一致したときtrue、それ以外はfalseを返す。データ型は継承している基本クラスまで調べて比較する。また、インターフェイスが実装されているかどうかも比較出来る。


var price:int = 250;
trace (price is int);
出力:true
trace (price is Number);
出力:true
trace (price is String);
出力:false

var vlist:Array = [3, 5, 8];
trace (vlist is Array);
出力:true
trace (vlist is Object);
出力:true
trace (vlist is Numver);
出力:false

var clip:MovieClip = new ballMC();
trace (clip is MovieClip);
出力:true
trace (clip is Sprite);
出力:true
trace (clip is DisplayObject);
// 出力:true

as演算子

データ型が一致したときその値を返し、一致しないときはnullを返す。また、評価したデータ型にして値を返すので、値のタイプを変換するキャストの目的でも利用される。


var vlist:Array = [250, -30 ,"red"];
trace(vlist[0] as int);
出力:250
trace (vlist[1] as int);
出力:-30
trace (vlist[2] as int);
// 出力:null

typeof

タイプに応じた情報をストリングで返す。データ型によって返す値は以下のようになる。

データ型 結果
Array object
Boolean Boolean
Function function
int Number
Number Number
Object Object
String String
uint Number
XML xml
XMLList xml


var price:int = 250;
trace (typeof price);
出力:number

var state:Boolean = true;
trace (typeof state);
出力:boolean

var msg:Boolean = "test";
trace (typeof msg);
出力:boolean

var vlist:Array = [3, 5, 8];
trace (typeof vlist);
出力:object

var clip:MovieClip = new ballMX();
trace (typeof clip);
// 出力:object

索引