2016-03-23 9 views
0

私はJavascriptの無限部門

console.log(Infinity/0) // Infinity 

しかし

console.log(Infinity/Infinity) // NaN 

というのが私のコードで見ることができます私は理由は数学であると仮定することができますが、私はJSに関連する説明を見つけることができません。

誰かが私にいくつかの記事を指摘できますか?

+1

これは多分何かですか? Read:http://www.2ality.com/2012/02/nan-infinity.html – Jer

+1

Joeの答えに加えて、数学的にも意味があります。無限プラス、マイナス、乗算、定数で割った値は無限大です。無限大はそれ自体で分割され、定義されていません。 – element11

答えて

4

ここin the specそれは言う:分裂の

結果が無限にゼロ結果によってIEEE 754無限の算術

部門の仕様によって決定されます。記号は既に上記のルールによって決定されます。

のNaNに無限の結果によって無限の部門。

これはそのとおりです。それはなぜそれをするのですか? IEEE 754またはこのWikipedia page on IEEE floating pointを読んでください。

0

NaNは、演算結果が数学的に定義されていない値をとる場合には、それ自体でさえない.itが使用される特殊なケースです。

例:

console.log(NaN === NaN); // false 
console.log(0/0);  // NaN 
0

Javascriptが算術演算を行うためのIEEE 754仕様に従います。 This tableは無限大の算術ルールを示します。

関連する問題