プリミティブデータ型には、Boolean、int、Null、Number、String、uint、および void があります。ActionScript コアクラスでは、Object、Array、Date、Error、Function、RegExp、XML、および XMLList の複合データ型も定義されています。
Boolean データ型は、true と false の 2 つの値で構成されます。Boolean 型の変数に有効な値は、この 2 つだけです。宣言されていて、初期化されていない Boolean 型変数のデフォルト値は false です。
int データ型は、32 ビット整数として内部的に格納され、-2,147,483,648(-231)以上 2,147,483,647(231 - 1)以下の整数のセットで構成されます。旧バージョンの ActionScript には、整数と浮動小数点数の両方に使用する Number データ型しかありませんでした。ActionScript 3.0 では、32 ビット符号付および符号なし整数の低レベルマシン型にアクセスすることができるようになりました。変数が浮動小数点数を使用しない場合、Number データ型ではなく int データ型を使用する方が速く、効率的です。
最小 int 値と最大 int 値の範囲外の整数値の場合は、Number データ型を使用します。Number データ型では、-9,007,199,254,740,992 ~ +9,007,199,254,740,992 の値(53 ビット整数値)を処理できます。int データ型の変数のデフォルト値は 0 です。
Null データ型の値は null しかありません。これは、String データ型および Object クラスを含む複合データ型を定義するすべてのクラスのデフォルト値です。Boolean、Number、int、uint などの他のプリミティブデータ型には、値 null は含まれません。Flash Player および Adobe AIR では、Boolean、Number、int または uint 型の変数に値 null を割り当てようとすると、null は該当するデフォルト値に変換されます。このデータ型は、型注釈として使用することはできません。
ActionScript 3.0 では、Number データ型は整数、符号なし整数、および浮動小数点数を表すことができます。ただし、パフォーマンスを最大化するために、32 ビット int および uint 型より大きい整数値に対してのみ、Number データ型を使用する必要があります。また、Number データ型には、浮動小数点数を格納することができます。浮動小数点数を格納するには、数値に小数点を含めます。小数点を省略すると、数値は整数として格納されます。
Number データ型では、2 進数浮動小数点計算のための IEEE 規格(IEEE-754)で指定されている 64 ビット倍精度フォーマットを使用します。この規格では、64 ビットを使用して浮動小数点数を格納する方法が指定されています。1 ビットを使用して数値が正か負かを指定します。11 ビットを 2 を底として格納される指数に使用します。残りの 52 ビットを使用して「仮数」を格納します。仮数とは指数で示される累乗される数値です。
Number データ型では、ビットの一部を使用して指数を格納することで、仮数のビットすべてを使用する場合より大きな浮動小数点数を格納できます。例えば、Number データ型で 64 ビットすべてを使用して仮数を格納した場合、265 - 1 の数値を格納できます。Number データ型では、11 ビットを使用して指数を格納することで、仮数を 21023 乗できます。
Number 型で表すことができる最大値と最小値は、Number.MAX_VALUE および Number.MIN_VALUE という Number クラスの静的プロパティに格納されます。
Number.MAX_VALUE == 1.79769313486231e+308 Number.MIN_VALUE == 4.940656458412467e-324
この数値の範囲は非常に大きくなりますが、この範囲の問題は精度です。Number データ型では、仮数の格納に 52 ビットを使用します。その結果、分数 1/3 など、正確に表すためには 53 ビット以上必要な数値は近似値にしかなりません。アプリケーションで 10 進法による絶対精度が必要な場合、2 進数浮動小数点計算ではなく、10 進法浮動小数点計算を実装するアプリケーションを使用する必要があります。
Number データ型で整数値を格納する場合、仮数の 52 ビットだけが使用されます。Number データ型はこの 52 ビットと特別な隠しビットを使用して、-9,007,199,254,740,992(-253)~ 9,007,199,254,740,992(253)の整数を表します。
Flash Player および Adobe AIR では、Number 型の変数のデフォルト値としてだけではなく、数値を返す必要があるが返さない演算の結果としても、NaN 値を使用します。例えば、負の数値の平方根を計算しようとすると、その結果は NaN になります。その他の特別な Number 型の値には、正の無限大および負の無限大があります。
String データ型は、16 ビット文字の連続を表します。ストリングは、UTF-16 形式を使用して、Unicode 文字として内部的に格納されます。ストリングは、Java プログラミング言語の場合と同様に不変値です。String 値を操作すると、ストリングの新しいインスタンスが返されます。String データ型で宣言される変数のデフォルト値は null です。値 null と空のストリング("")は、両方とも文字が存在しないことを表しますが、同じものではありません。
uint データ型は、32 ビット符号なし整数として内部的に格納され、0 以上 4,294,967,295(232 - 1)以下の整数のセットで構成されます。負以外の整数が必要な特別な場合に、uint データ型を使用します。例えば、ピクセルカラー値を表すためには uint データ型を使用する必要があります。これは、int データ型にはカラー値の処理には適していない内部符号ビットがあるためです。最大 uint 値より大きな整数値には、53 ビット整数値を処理できる Number データ型を使用します。uint データ型の変数のデフォルト値は 0 です。
void データ型の値は undefined だけです。旧バージョンの ActionScript では、undefined は Object クラスのインスタンスのデフォルト値でした。ActionScript 3.0 では、Object インスタンスのデフォルト値は null です。値 undefined を Object クラスのインスタンスに割り当てようとすると、Flash Player および Adobe AIR ではこの値は null に変換されます。型指定されていない変数には、undefined という値のみを割り当てることができます。型指定されていない変数は、型注釈がないか、型注釈にアスタリスク記号(*)が使用されている変数です。void は戻り値の型注釈としてのみ使用することができます。
Object データ型は Object クラスによって定義されます。Object クラスは、ActionScript のすべてのクラス定義の基本クラスです。ActionScript 3.0 の Object データ型は、次の 3 つの点で旧バージョンとは異なります。1 つ目は、Object データ型は、型注釈のない変数に割り当てられるデフォルトのデータ型ではなくなりました。2 つ目は、Object データ型には、Object インスタンスのデフォルト値であった値 undefined が含まれなくなりました。3 つ目は、ActionScript 3.0 では、Object クラスのインスタンスのデフォルト値は null です。
旧バージョンの ActionScript では、型注釈のない変数には自動的に Object データ型が割り当てられていました。ActionScript 3.0 ではこれは行われず、真に型指定されていない変数の概念が導入されました。型注釈のない変数は、型が指定されていないと見なされます。コード内で変数の型を指定しないままにしておくことを明確に示す場合、型注釈に新しくアスタリスク記号(*)を使用することができます。これは、型注釈を省略するのと同じことを示します。次の例は、型指定されていない変数 x を宣言する 2 つの同じステートメントを示します。
var x var x:*
型指定されていない変数にのみ値 undefined を割り当てることができます。値 undefined をデータ型が指定されている変数に割り当てようとすると、Flash Player および Adobe AIR は値 undefined をそのデータ型のデフォルト値に変換します。Object データ型のインスタンスのデフォルト値は null です。つまり、undefined を Object インスタンスに割り当てようとすると、Flash Player または Adobe AIR は値 undefined を null に変換します。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート