Macromedia Flash非公式テクニカルノート NaN
Platform: All シンタックス 引数 説明 NaNという変数名は非数値(Not a Number)からきています。たとえば、0を0で除算した場合が、これに当たります。0による除算は、未定義なためです(0でない値を0で除算することも、数学の演算上は未定義です。しかし、ActionScriptでは除される値が正の場合はInfinity、負の場合には-Infinityを返します)。 NaNを数値演算の対象とすると、結果は必ずNaNになります。ただし、データ型は数値(Number)です。したがって、「非数値」というよりは、「数値演算不能値」と理解する方がよさそうです。
NaNは順序付けされない(unordered)ため、比較演算子による比較には馴染みません。NaNをNaN自身を含む他の値と比較すると、不等価演算子!=はtrue、等価演算子==はfalseを返します。 もっとも、ActionScript 1.0または2.0において、大小比較の演算子で比較したときに返る結果は、整合性のあるものではないようです。NaNを他の値と<または>演算子で比較すると、未定義値undefinedが返ります。他方で、<=や>=演算子による比較では、trueが返されます。ActionScript 3.0およびJavaScriptでは、不等価演算子!=による比較以外は、すべてfalseを返します。こちらが正しい動作といえます[*1]。 NaNを評価するには、比較演算子でなくisNaN()関数を用います。この関数は、引数を評価し、値が数値でない場合にはtrueを返します(詳しくは「ActionScriptリファレンスガイド」をご覧ください)。なお、[FN0108014]「値がNaNかを調べる」を併せてご参照ください。
_____ 作成者: 野中文雄 Copyright © 2001-2006 Fumio Nonaka. All rights reserved. |
|||||