javascript で undefined の値が有限と見なされるのに、null はそうではないのはなぜですか?
これは非常に基本的な質問であり、私の googlefoo を妨害しました (ノイズが多すぎます)。
isFinite(undefined); // false
isFinite(null); // true
null と undefined が同じ方法で処理されることを期待しているので、わかりません。
javascript で undefined の値が有限と見なされるのに、null はそうではないのはなぜですか?
これは非常に基本的な質問であり、私の googlefoo を妨害しました (ノイズが多すぎます)。
isFinite(undefined); // false
isFinite(null); // true
null と undefined が同じ方法で処理されることを期待しているので、わかりません。
これはNumber(null) === 0
.
isFinite (数値)
引数が NaN、+∞、または -∞ に強制される場合は false を返し、それ以外の場合は true を返します。
isFinite
Number()
andを使用して入力を変換します。
Number(undefined); //== NaN
Number(null); //== 0
これが、isFinite に対して undefined が false で null が true である理由です。
試してみると:
isFinite(!undefined); // true
undefined は NaN であり、それを否定すると有限の 1 に変換されるためです。