parseIntの使い方の戻り値
[上に]
[前に]
[次に]
ドラエモン
1998/08/13(木) 10:13:45
JavaScriptで
parseIntを使いました
str1 = "12345";
str2 = "abc";
n1 = parseInt(str1);
n2 = parseInt(str2);
とやりました。
すると
n1 = 12345
n2 = NaN
となりました。
ここまではわかるんですけど
if( n2 == NaN)
とやるとエラーになってしまうのですがどうしてでしょう?
まだ初心者なのでやってることが変かもしれませんが、
回答をお願いします。
ドラエモン
1998/08/13(木) 10:15:03
ちょっとタイトル変ですね・・・
hiro-kim
1998/08/17(月) 18:10:25
if (n2 == NaN) という書き方では,
・右辺のNaNが変数名と見なされてしまうこと
・n2を表示したときの値:NaNはある内部状態であって,"NaN"という文字列ではないこと
が原因のようです。
n2の値を適当な?進数文字列に変換して文字列同士で比較する例1なら正常動作しました。(当方,Explorer4で動作確認しました)
<html><body>
<script language="JavaScript">
n2 = parseInt("abc");
if (n2.toString(2) == "NaN") // 例1
document.write("Not a Number<br>");
if (isNaN(n2)) // 例2
document.write("Not a Number<br>");
</script>
</body></html>
例2はスマートですが,Netscape4,Explorer4でしか正常動作しないそうです。
ドラエモン
1998/08/18(火) 09:52:42
[[解決]]
ありがとうございます。
またなにかあったらよろしくおねがいします。
[上に]
[前に]
[次に]