JavaScript NaN と Infinity の特別な値 [翻訳]_javascript のヒント

WBOY
リリース: 2016-05-16 17:49:49
オリジナル
1368 人が閲覧しました
1.NaN

JavaScript では、NaN は「非数値」を表します。この値は主に、文字列の解析中にエラーが発生した場合に返されます:
コードをコピー コードは次のとおりです:

> Number("xyz")
NaNNaN


の名前は「数値ではありません」ですが、数値ではないとも言えます:
コードをコピー コードは次のとおりです:

> NaN !== NaN
true

タイプは "数値" です。 🎜>
コードをコピーします コードは次のとおりです。
> typeof NaN
'number'


1.1 NaN の検出 JavaScript では、NaN は待機したくない唯一の値であるため、等号演算子を使用して決定することはできません。値が NaN かどうかを確認しますが、これを行うためのグローバル関数 isNaN() があります。


Kit Cambridge
は、
isNaN()

の問題を指摘しました。パラメータが暗黙的に数値に変換されるため、パラメータが文字列に変換できない場合でも、 true (NaN に変換):

コードをコピー

コードも返します > Number("xyz") NaN
> isNaN("xyz")
true



同じため その理由は、isNaN が他の多くのオブジェクトに対しても true を返すためです:



コードをコピー > isNaN({})
true

> Number(["xzy"]) )
NaN
> isNaN(["xzy"])
true


valueOf メソッドをオーバーライドする同じカスタム オブジェクト:



コードをコピーします
コードは次のとおりです: > var obj = { valueOf: function () { return NaN } }; 🎜>> Number(obj) NaN
> isNaN(obj)
true


したがって、(x ! == x) 不等式を使用して独自の isNaN 関数を作成すると、上記の問題は発生しません:



コードをコピー
コード function myIsNaN( x) { return x !== x; }

現在は isNaN メソッドの改訂版ですNumber.isNaN() は ECMAScript 6 に追加されました (翻訳者注: Firefox はすでに実装しています)。Crockford によって実装されたこのメソッドは、上記の myIsNaN よりも理解しやすいです。



コードをコピーします
コードは次のとおりです: Number.isNaN = function (value) { return typeof value == = 'number' && isNaN(value);


2.Infinity

0 を除数として使用すると、別の値が生成されます。特別な値 Infinity:


コードをコピーします

コードは次のとおりです。 > 3/ 0 無限大
正の無限大か負の無限大かを単純に推測することはできません 無限大の計算結果:



コードをコピー

コードは次のとおりです: >Infinity - Infinity NaN
無限大より大きい値は無限大のままです:




コードをコピー

コードは次のとおりです:

>インフィニティ インフィニティ
インフィニティ> 5 * Infinity
Infinity


3. 参考

JavaScript の {} {} とは何ですか?
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!