0

次のコードを検討してください。

var postValue = "99";
var number = new Number(postValue); //also tried var number = parseInt(postValue);
if (isNaN(number)) { 
              alert('please enter a number');
                        }

両方のケースで isNan(number) が false になるのはなぜですか?

4

3 に答える 3

2

isNAN=「数字ではありません」。これは、 の場合isNaN(number) === falsenumber ISが数値であることを意味します。

var postValue = "99";
var number = parseInt(postValue);
if (isNaN(number)) { 
    alert('please enter a number');
}
于 2013-09-18T08:58:06.563 に答える
1

parseInt()文字列を整数に変換します。そのために、文字列の左側から文字を読み取って、できるだけ多くの数字の文字を見つけ、その数字を返します。

この場合、"99"すべて数字であるため、結果は数字の 99 になります。これは明らかに「数字ではない」ため、isNaNfalse を返します。

isNaN入力文字列が数字以外で始まる場合は true を返します。

于 2013-09-18T09:00:50.343 に答える
0

isNaN(): 数値ではありません。引数が数値でない場合は false を返します。これは、コードの場合です。どちらの場合も、常に番号を取得します。

于 2013-09-18T09:00:54.293 に答える