23 of 264 menu

Die Funktion isFinite

Die Funktion isFinite dient dazu, einen Parameter darauf zu prüfen, ob er eine endliche Zahl ist (also keine Zeichenkette, kein Array usw. und nicht plus oder minus unendlich).

So funktioniert diese Funktion: Sie gibt false zurück, wenn die Zahl plus oder minus unendlich ist (also Infinity) oder keine Zahl ist (also NaN), in allen anderen Fällen gibt sie true zurück. Das bedeutet, Zeichenketten, Arrays usw. werden in NaN umgewandelt und geben entsprechend false zurück.

Es gibt jedoch Ausnahmen: Ein leerer String '' gibt true zurück, ein String mit Leerzeichen '    ' gibt ebenfalls true zurück, null gibt true zurück, für die Werte true und false wird ebenfalls true zurückgegeben.

Dies geschieht, weil diese Werte in Zahlen umgewandelt werden und nicht in NaN. Wenn Sie eine wirklich genaue Prüfung auf Zahlen benötigen, die einen String aus Leerzeichen, boolesche und spezielle Werte nicht als Zahl betrachtet - verwenden Sie die folgende Funktion isNumeric:

function isNumeric(num) { return !isNaN(parseFloat(num)) && isFinite(num); };

Lassen Sie uns verstehen, wie sie funktioniert. Die Funktion isFinite konvertiert den Parameter in eine Zahl und gibt true zurück, wenn dies nicht Infinity, -Infinity oder NaN ist. So filtert der rechte Teil offensichtliche Nicht-Zahlen aus, lässt aber Werte wie true, false, null, leeren String '' und String mit Leerzeichen übrig, da sie korrekt in Zahlen umgewandelt werden.

Um diese Werte auszufiltern, wird die Funktion parseFloat benötigt, die für true, false, null, '', '   ' NaN zurückgibt. So funktioniert die Funktion parseFloat: Sie konvertiert den Parameter in einen String, d.h. true, false, null werden zu 'true', 'false', 'null', und liest dann die Zahl daraus aus, wobei ein leerer String und ein String mit Leerzeichen NaN ergeben. Dann wird das Ergebnis von parseFloat mit !isNaN verarbeitet, um true oder false anstelle von NaN zu erhalten. Als Ergebnis wird alles aussortiert, außer Zahlen-Strings und gewöhnlichen Zahlen.

Syntax

isFinite(Wert);

Beispiel

Jetzt gibt isFinite true aus, da der Parameter eine Zahl ist:

let num = 3; console.log(isFinite(num));

Ergebnis der Codeausführung:

true

Beispiel

Jetzt gibt isFinite false aus, da der Parameter keine Zahl ist:

let num = 'abcde'; console.log(isFinite(num));

Ergebnis der Codeausführung:

false

Beispiel

Jetzt gibt isFinite false aus, da der Parameter unendlich ist:

let num = Infinity; console.log(isFinite(num));

Ergebnis der Codeausführung:

false

Beispiel

Jetzt gibt isFinite false aus, da 1/0 im Grunde Infinity (Unendlichkeit) ist:

let num = 1 / 0; console.log(isFinite(num));

Ergebnis der Codeausführung:

false

Beispiel

Jetzt gibt isFinite true aus, da ein leerer String, obwohl keine Zahl, - eine Ausnahme ist:

let num = ''; console.log(isFinite(num));

Ergebnis der Codeausführung:

true

Siehe auch

  • die Funktion isNaN,
    die eine Prüfung auf NaN durchführt
  • den Operator typeof,
    der den Datentyp bestimmt
svmsuzcuzlpl