サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

undefined

ID: FN0108013 Product: Flash

Platform: All
Version: 5.0 and above

シンタックス
undefined

引数
なし。

説明
特別な値で、通常変数にまだ値が設定されていないことを示すために用いられます。未定義の値を参照すると、特別な値であるundefinedが返ります。ActionScriptのコードでtypeof(undefined)は、ストリングの"undefined"を返します。undefinedタイプの値は、undefinedのみです。

Flash Player 6以前にパブリッシュされたファイルでは、undefinedを文字列に変換(String(undefined))すると、値は""(空文字列)になります。Flash Player 7以降にパブリッシュされたファイルでは、undefinedを文字列に変換(String(undefined))すると、値は文字列の"undefined"になります[*1][*2][*3]。

undefinedは、特別な値であるnullと似ています。nullundefinedとを等価演算子(==)で比較すると、等価とされます。しかし、nullundefinedとを厳密な等価演算子(===)で比較すると、等価とはされません[*4]。

[訳者註*1] 原文では、undefinedの文字列への変換を、undefined.toString()で示しています。しかし、undefinedはtoString()メソッドをもちません。したがって、どのFlash Playerで調べても、undefined.toString()はundefinedを返します。これは、undefinedが文字列に変換された戻り値ではなく、undefined.toStringが存在しない結果として未定義値が返されているにすぎません。

[訳者註*2]undefinedを数値に変換(Number(undefined))すると、Flash Player 6以前では数値0、Flash Player 7以降は特別な値NaNを返します。NaNに対してどのような数値演算を行っても、結果はNaNになります。

[訳者註*3] ECMA-262仕様では、undefinedを文字列に変換すると"undefined"になり、数値に変換するとNaNを返します。Flash Player 6以前で、文字列として評価すると空文字列("")になり、数値評価が0になるのは、Flash Player 4以前との互換性を保つための仕様と考えられます。Flash Player 7から、ECMA-262への準拠が強化されました。

[訳者註*4] 厳密な等価演算子===undefinednullとを比較すると、戻り値はfalseになります。nulltypeof演算子で調べると、"null"が返されます。つまり、nullundefinedとは厳密にはデータ型が異なるのです。

Player
Flash 5以降。


以下の例で、変数xは宣言されていません。ですから、値はundefinedです。コードの最初のパートでは、等価演算子(==)でxの値を値undefinedと比較しています。そして、得られた結果は、出力ウィンドウに表示されます。コードの2番目のパートでは、等価演算子(==)で値nullundefinedとを比較しています。

// xは未宣言
trace ("xの値は"+x);
if (x == undefined) {
  trace ("xは未定義");
} else {
  trace ("xは定義済み");
}
trace ("typeof(x)は"+typeof (x));
if (null == undefined) {
  trace ("nullとundefinedは等しい");
} else {
  trace ("nullとundefinedは等しくない");
}

つぎのような結果が、出力ウィンドウに表示されます[*5]。

xの値はundefined
xは未定義
typeof(x)はundefined
nullとundefinedは等しい

[訳者註*5] Flash Player 7でパブリッシュした場合です。Flash Player 6以前では、出力の1行目は「xの値は」のみになります。undefinedが空文字列""に変換されるためです。

出典
ActionScript Language Reference(Flash MX 2004 7.2英語版)より邦訳。

_____

作成者: 野中文雄
更新日: 2004年9月20日 Flash MX 2004のドキュメントに合わせて修正および註釈の追加
更新日: 2003年2月22日 若干の字句修正と訳者註の追加
更新日: 2003年2月14日 訳者註を追加。MXのActionScript辞書と記載内容を照合。
更新日: 2001年10月9日 対応Flash Playerの記載漏れを追加
作成日: 2001年8月16日


Copyright © 2001-2006 Fumio Nonaka.  All rights reserved.