2011-11-25 6 views
16

奇妙なことがあります。 isNaN("")isNaN()とparseInt()の混同

なぜ
私はNaN
を取得parseInt("")False
しかし
を取得しますか?

+2

'isNaN'は 'parseInt'を使用しないので、http://stackoverflow.com/questions/825402/why-does-isnan-equal-false –

+0

の重複がありますか? –

+1

キーは、**型変換**と**構文解析**、 'isNaN'の違いを理解することです。引数の型変換を' Number'型に行います。一方、 'parseInt'は*解析された文字列*以下も参照してください:http://stackoverflow.com/questions/4090518/string-to-int-use-parseint-or-number – CMS

答えて

19

isNaNは、引数として整数を受け取り - 従って、空の文字列は""がゼロと等価であるからである数

+0

すでに回答済み - 複製http://stackoverflow.com/questions/825402/why-does-isnan -equal-false –

+10

'isNaN'は"整数 "をとりません、*は数値です(すべてIEEE-754の倍数です、例えば' isNaN(0.5) 'は' false'を返します)。 * type convert *引数の値は – CMS

+0

あなたの権利ですが、私は論理を単純に保つようにしていました。 –

0

ない - 従ってJSは""parseInt

0への引数として文字列を取り変換しますJavaScriptで。試してください "" == 0。これは、数値方程式で評価しようとすると、0となることを意味します。一方、解析すると、そこには何も存在しません。

parseIntの代わりにMath.floorを使用できます。これにより、は""になります。

+0

「相当ですか」と正確には何を意味していますか? – Kos