typeof 演算子
スクリプトを記述していると、変数(および後述する関数などの式)のデータ型を調べたいケースが出てきます。
そんなときに活躍するのが、typeof 演算子(演算子については「演算子」を参照)です。
typeof 演算子の書式は以下のとおりです。' typeof ' の後ろに半角スペース、その後ろに調べたい変数、関数などの式を置きます。typeof
演算子は、文字列でデータ型を返します。
typeof 演算子が返す文字列:実習
typeof 演算子が返す文字列は、残念ながら英語です。
それでは実際にFlashで入力しながら各データ型が返す文字列を確かめてみましょう。
1.FlashMXを起動し、新規ドキュメントを開いてください。
2.[ アクション ] パネルが表示されていないときは、[ F9 ] キーを押して表示します。
3.[ レイヤー1 ] の第1フレームをクリックして選択します。
4.[ アクション ] パネルの [ スクリプトペイン ] をクリックし、アクティブ(入力可能な状態)にします。
5.基本データ型から確認しましょう。以下のスクリプトを入力します。
var1 = 56 ; //
変数 ' var1 ' に数値「56」を代入
trace( typeof var1 ) ; //
変数 ' var1 ' のデータ型を [ 出力 ] ウィンドウに表示
var2 = "こんにちは" ; //
変数 ' var2 ' に文字列「こんにちは」を代入
trace( typeof var2 ) ; //
変数 ' var2 ' のデータ型を [ 出力 ] ウィンドウに表示
var3 = true ; //
変数 ' var3 ' にブール値「true」を代入
trace( typeof var3 ) ; //
変数 ' var3 ' のデータ型を [ 出力 ] ウィンドウに表示 |
6.[ Ctrl ] + [ Enter ] キーを押して、ムービープレビューを実行します。
[ 出力 ] ウィンドウの表示結果は以下のとおりです。
数値は「number」、文字列は「string」、ブールは「boolean」と表示されます。
次は、undefinedとnullを調べてみましょう。
7.[ Ctrl ] + [ W ] キーを押して、ムービープレビューのウィンドウを終了します。
8.レイヤー1のすべてのスクリプトを削除し、あらたに以下のスクリプトを記述します。
var1 = undefined ; //
変数 ' var1 ' に「undefined」を代入
trace( typeof var1 ) ; //
変数 ' var1 ' のデータ型を [ 出力 ] ウィンドウに表示
var2 = null ; //
変数 ' var2 ' に「null」を代入
trace( typeof var2 ) ; //
変数 ' var2 ' のデータ型を [ 出力 ] ウィンドウに表示 |
9.[ Ctrl ] + [ Enter ] キーを押して、ムービープレビューを実行します。
[ 出力 ] ウィンドウの表示結果は以下のとおりです。
undefinedは「undefined」、nullは「null」と表示されます。
続いて、ステージ上に配置される3種類のインスタンスを調べてみましょう。
10.[ Ctrl ] + [ W ] キーを押して、ムービープレビューのウィンドウを終了します。
11.レイヤーを追加し、新規レイヤー(レイヤー2)の第1フレームに、ムービークリップ、ボタン、テキストフィールド(ダイナミックテキストまたはテキスト入力)の3つを配置します。
インスタンス名は、ムービークリップ「test_mc」、ボタン「test_btn」、テキストフィールド「test_txt」とします。
12.レイヤー1のすべてのスクリプトを削除し、あらたに以下のスクリプトを記述します。
trace( typeof test_mc ) ; //
' test_mc ' のデータ型を [ 出力 ] ウィンドウに表示
trace( typeof test_btn ) ; //
' test_btn ' のデータ型を [ 出力 ] ウィンドウに表示
trace( typeof test_txt ) ; //
' test_txt ' のデータ型を [ 出力 ] ウィンドウに表示 |
13.[ Ctrl ] + [ Enter ] キーを押して、ムービープレビューを実行します。
[ 出力 ] ウィンドウには以下のように表示されます。
ムービークリップは「movieclip」、ボタンとテキストフィールドは「object」と表示されました。後者はともに、データ型としてはオブジェクト型ですので、正しい表示です。
14.[ Ctrl ] + [ W ] キーを押して、ムービープレビューのウィンドウを終了します。
少し先走りとなりますが、他のオブジェクトも調べておきましょう。現時点で、意味が分からなくてもかまいません。
15.レイヤー1のすべてのスクリプトを削除し、あらたに以下のスクリプトを記述します(そのままコピーしてください)。
trace(typeof Selection); //
Selectionオブジェクトをtrace
trace(typeof Stage); //
Stageオブジェクトをtrace
trace(typeof System); //
Systemオブジェクトをtrace
trace(typeof new Array(5,4,3,2,1,0)); //
Arrayオブジェクトをtrace
trace(typeof new Boolean(true)); //
Booleanオブジェクトをtrace
trace(typeof new Color(test_mc)); //
Colorオブジェクトをtrace
trace(typeof new Date()); //
Dateオブジェクトをtrace
trace(typeof trace); //
trace関数をtrace
function myFunc(){}; //
functionオブジェクト myFuncを定義
trace(typeof myFunc); //
functionオブジェクト myFuncをtrace
trace(typeof new LoadVars()); //
LoadVarsオブジェクトをtrace
trace(typeof new LocalConnection()); //
LocalConnectionオブジェクトをtrace
trace(typeof new Number(6)); //
Numberオブジェクトをtrace
trace(typeof new Object()); //
Objectオブジェクトをtrace
trace(typeof new Sound()); //
Soundオブジェクトをtrace
trace(typeof new String("おはよう")); //
Stringオブジェクトをtrace
trace(typeof new SharedObject()); //
SharedObjectオブジェクトをtrace
trace(typeof new TextFormat()); //
TextFormatオブジェクトをtrace
trace(typeof new XML("<html>こんにちは</html>")); //
XMLオブジェクトをtrace
trace(typeof new XMLSocket()); //
XMLSockectオブジェクトをtrace |
16.[ Ctrl ] + [ Enter ] キーを押して、ムービープレビューを実行します。
[ 出力 ] ウィンドウには以下のように表示されます。
関数は「function」、それ以外は「object」と表示されました。『ActionScript辞書』では、Functionオブジェクトはオブジェクトに仕分けされていますが、どうやら、内部的にはfunction型として扱われているようです。
| object
object
object
object
object
object
object
function
function
object
object
object
object
object
object
object
object
object
object |
17.[ Ctrl ] + [ W ] キーを押して、ムービープレビューのウィンドウを終了します。
以上で、実習は終了です。結果をまとめると、typeof演算子が返す文字列は以下のようになります。
実際に、 typeof演算子を使用するときの参考にしてください。
| データ型 |
表示結果 |
| 数値 |
number |
| 文字列 |
string |
| ブール |
boolean |
| undefined |
undefined |
| null |
null |
| ムービークリップ |
movieclip |
| オブジェクト(Function) |
function |
| オブジェクト(それ以外) |
object |
・関連項目
データ型
[ 出力 ] ウィンドウへの表示
演算子
関 数
式、ステートメント、ブロック
オブジェクト(詳細)
|