2016-03-23 17 views
0

Ich kann in meinem Code sehen, dassJavascript infinity Division

console.log(Infinity/0) // Infinity 

Aber

console.log(Infinity/Infinity) // NaN 

ich, dass die Gründe dafür sind in der Mathematik einnehmen kann, aber ich keine Erklärungen nicht finden können, zu JS bezogen.

Kann mir jemand auf einige Artikel zeigen?

+1

Vielleicht ist das etwas? Lesen Sie: http://www.2ality.com/2012/02/nan-infinity.html – Jer

+1

Zusätzlich zu Joes Antwort macht es auch in mathematischen Begriffen Sinn. Unendlichkeit plus, minus, multipliziert, dividiert durch eine Konstante ist Unendlichkeit. Die durch sich geteilte Unendlichkeit hebt sich selbst auf und ist nicht definiert. – element11

Antwort

4

Hier in the spec heißt es:

Das Ergebnis der Division durch die Spezifikation des IEEE 754-Arithmetik bestimmt wird

Teilung einer Unendlichkeit durch eine Null ergibt eine Unendlichkeit. Das Vorzeichen ergibt sich aus der bereits oben genannten Regel.

und

Teilung einer Unendlichkeit durch eine Unendlichkeit ergibt NaN.

Es ist in der Spezifikation, so ist es, was es tut. Warum macht es das? Lesen Sie IEEE 754 oder dieses Wikipedia page on IEEE floating point.

0

NaN ist ein Sonderfall, der nicht gleich sein kann, nicht einmal selbst. Es wird verwendet, wenn eine Operation zu einem mathematisch nicht definierten Wert führt.

ex:

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