ActionScriptのNaNは等価演算子(==)で評価できない

ActionScriptで、テキストフィールドの入力値を元に計算させる場合などに、文字列などが入力された場合などを想定して
if(val==NaN){
 エラー処理
}

というような処理を考えますが、NaN(Not a Number)という値は、等価演算子(==)で評価できないとの事です。
【参考】値がNaNかを調べる Macromedia Flash非公式テクニカルノート

【参考】NaN 定数 isNaN 関数 Abobe Flashドキュメンテーション
たとえば
val="abc";
if(val==NaN){
 trace("valは数値ではありません");
}else{
 trace("valは数値です");
}

変数”val”は”abc”という文字列なので「valは数値ではありません」という結果を期待しますが、結果は「valは数値です」となってしまいます。

なので、変数が数値かどうか(NaN)を評価したい場合は
isNaN関数を利用すればよいとの事。
isNaN関数を利用すると、さきほどの例は
val="abc";
if(isNaN(val)){
 trace("valは数値ではありません");
}else{
 trace("valは数値です");
}

とする事で、「valは数値ではありません」となり、正しく評価されます。

なお、JavaScriptの場合も同様にisNaNを利用し
<script language="JavaScript" type="text/javascript">
val="abc";
if(isNaN(val)){
 alert("valは数値ではありません");
}else{
 alert("valは数値です");
}
</script>

となります。

【参考】isNaN Function Mozilla Core JavaScript 1.5 Guide
posted by digital-squad at 2006年12月08日 02時23分 | Comment(0) | TrackBack(0) | Flash / ActionScript
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/29167957
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック