if(val==NaN){
エラー処理
}
エラー処理
}
というような処理を考えますが、NaN(Not a Number)という値は、等価演算子(==)で評価できないとの事です。
【参考】値がNaNかを調べる Macromedia Flash非公式テクニカルノート
【参考】NaN 定数 isNaN 関数 Abobe Flashドキュメンテーション
たとえば
val="abc";
if(val==NaN){
trace("valは数値ではありません");
}else{
trace("valは数値です");
}
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は数値です");
}
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>
val="abc";
if(isNaN(val)){
alert("valは数値ではありません");
}else{
alert("valは数値です");
}
</script>
となります。
【参考】isNaN Function Mozilla Core JavaScript 1.5 Guide