1

javascript で undefined の値が有限と見なされるのに、null はそうではないのはなぜですか?

これは非常に基本的な質問であり、私の googlefoo を妨害しました (ノイズが多すぎます)。

isFinite(undefined); // false
isFinite(null); // true

null と undefined が同じ方法で処理されることを期待しているので、わかりません。

4

2 に答える 2

7

これはNumber(null) === 0.

http://es5.github.io/#x9.3

于 2013-10-08T17:21:52.027 に答える
1

isFinite (数値)

引数が NaN、+∞、または -∞ に強制される場合は false を返し、それ以外の場合は true を返します。

isFiniteNumber()andを使用して入力を変換します。

Number(undefined); //== NaN
Number(null); //== 0

これが、isFinite に対して undefined が false で null が true である理由です。

試してみると:

isFinite(!undefined); // true

undefined は NaN であり、それを否定すると有限の 1 に変換されるためです。

于 2014-03-19T06:29:37.723 に答える