Moin!
function calc() {
if(string.length > 0) {
inp="out="+string;
eval(inp);
} else {
out="0";
}
}
Was hat dass "out=" zu bedeuten? Hier würde es doch dieses Out= vor dem zu berechnenden String anhängen aber warum muss ich dass machen?
Die spannendere Frage ist doch, was danach mit dem "inp" passiert. Und da steht: eval(inp).
eval ist die eierlegende Wollmilchsau. Sie führt die Befehle aus, die in dem String stehen, den man übergibt.
Folglich wird in dem String inp mindestens drinstehen: "out=IRGENDWAS", wobei IRGENDWAS die Eingabe ist, also z.B: "out=28/7".
Wenn du out=28/7 als Befehl im normalen Javascript ausführst, ist klar, was passiert: out erhält den Wert 4. Mit eval kannst du variable Berechnungen ausrechnen lassen. Damit sparst du dir, selbst Abfragen einzubauen, die "Punktrechnung vor Strichrechnung" etc. können, damit der Rechner richtig rechnet.
Die Kombination
inp="out="+string;
eval(inp);
bedeutet also: Berechne die Formel, die in string drinsteht, und weise das Ergebnis der Variablen out zu.
- Sven Rautenberg