Der Browser-Speicher localStorage ist nicht verfügbar. Entweder unterstützt dein Browser ihn nicht oder du hast ihn deaktiviert oder er ist voll. Ohne localStorage werden deine Lösungen nicht gespeichert.
NaN
NaN
repräsentiert den Wert Not-A-Number (engl.: Keine-Zahl). Numerische Operationen oder
Funktionen geben NaN
zurück, wenn sie keinen Wert berechnen können. Wir hatten dies bei
parseInt
kennengelernt. parseInt
gibt NaN
zurück, wenn es keine Zahl parsen kann. Ein weiteres Beispiel ist die Berechnung der Wurzel aus einer negativen Zahl:
let age = parseInt('Babylon');
let length = Math.sqrt(-1);
Sowohl age
als auch length
haben den Wert NaN
.Möchte man testen, ob
NaN
vorliegt, kann man leider nicht ===
verwenden.
NaN
ist der einzige Wert in JavaScript, der nicht mit sich selbst gleich ist.
NaN === NaN
ergibt false
.
Um auf NaN
zu testen, sollte man die Funktion Number.isNaN
verwenden:
let input = 'Babylon';
let message;
let age = parseInt(input);
if ( Number.isNaN(age) ) {
message = 'Du hast keine Zahl eingegeben.';
}
Die folgende Aufgabe ist anspruchsvoll.Aufgabe
Schreibe eine Funktion
Beispiel:
parseFirstInt
, die einen String entgegennimmt und die die erste in dem
String vorkommende ganze Zahl zurückgibt. Enthält der String keine ganze Zahl, soll man NaN
erhalten.Beispiel:
parseFirstInt('Sonnebornstr. 27')
sollte 27
zurückgeben.
parseFirstInt('Babylon')
sollte NaN
ergeben.
+ Tipp
Benutze eine Schleife. Verwende innerhalb der Schleife
parseInt()
.
+ Lösung
function parseFirstInt(input) {
let inputToParse = input;
for (let i = 0; i < input.length; i++) {
let firstInt = parseInt(inputToParse);
if (!Number.isNaN(firstInt)) {
return firstInt;
}
inputToParse = inputToParse.substr(1);
}
return NaN;
}