Javascript Basics - Teil 1
Wer sich mit Content Management Systemen, Webshops oder allgemein mit Web-Applikationen beschäftigt, wird zwangsweise zu dem Punkt kommen, an dem man sich mit Javascript auseinandersetzen muss. Dieser erste Teil der Javascript-Basics-Reihe zeigt Grundlagen, die nötig sind um diese Programmiersprache zu verstehen.
Number-FunktionDie Number-Funktion ist eine sehr hilfreiche Funktion, um Werte in das Zahlenformat Number zu konvertieren. Wenn Fehler beim Konvertieren nach Number passieren, z. B. wenn man versucht einen String aus Buchstaben in eine Zahl zu konvertieren, ist das Resultat der Number-Funktion NaN.
var mein_string = 'mein String';
var meine_number = Number(mein_string);
alert (meine_number);
Dieses Beispiel produziert NaN als Output, weil man keinen String aus Buchstaben in eine Number verwandeln kann. Folgendes Beispiel zeigt dagegen den Fall, dass das Konvertieren nach Number klappt, weil hier ein String, der eine Zahl repräsentiert, konvertiert wird:
var mein_string = '5';
var meine_number = Number(mein_string);
alert (meine_number);
parseInt-FunktionDie parseInt-Funktion konvertiert einen Wert in eine Number, ähnlich wie es die Number-Funktion macht. Ein zweiter Parameter namens "radix" kann angegeben werden, um festzulegen in welchem Zahlensystem sich die Zahl befinden soll.
alert(parseInt('09'));
alert(parseInt('09', 10));
Hier wird erst "0" ausgegeben und dann "9", weil man beim zweiten Mal das Dezimale Zahlensystem mit dem radix von 10 angibt. Im Gegensatz zur Number-Funktion hört sie aber am ersten Character-Wert auf und erzeugt damit kein NaN:
alert(parseInt('9z'));
alert(Number('9z'));
Zuerst wird hier mit parseInt der String in die Number 9 umgewandelt. die Number-Funktion kann das hier nicht, da sie wie oben erklärt NaN erzeugt. Javascript kann nicht richtig rechnen0.1 + 0.2 = 0.3 richtig? - falsch, denn Javascript ermittelt für diese Operation etwas anderes:
alert(0.1+0.2); // = 0.30000000000000004
Das Beispiel zeigt, dass Javascript Bugs hat, wie jede andere Programmiersprache auch. Man muss halt wissen, um sie zu umschiffen. Not a NumberDas Ergebnis von fehlerhaften und "undefined" Berechnungen ist Not a Number (NaN). Außerdem hat jede Berechnung mit NaN als Input auch NaN als Resultat Beispiel:
var resultat = NaN-5;
alert(resultat);
Das Beispiel gibt per alert NaN aus. NaN ist weiterhin ungleich zu allem. Also würde sogar ein Vergleich NaN zu NaN false ergeben.
if(NaN === NaN)
{
alert('gleich');
}
else
{
alert('ungleich');
}
Hier wird "ungleich" ausgegeben, weil NaN zu nichts gleich ist, inklusive NaN.
|
Kommentare