Calocybe: Verwendung von Konstanten?

Beitrag lesen

Hallo Stefan!

Wie JavaScript genau interpretiert wird, kann ich dir auch nicht sagen. Es scheint mir aber schon so, als ob der JavaScript-Interpreter moderner Browser immer erst das ganze Script vor der Ausfuehrung mal probeweise checkt, um nach Syntax-Problemen zu suchen.

Na ich schaetze mal, er wird einfach am Anfang alles an Script parsen, also die eingegeben vom Programmierer (?) eingegeben Texte erkennen und evtl. in einer fuer den Interpreter besser lesbaren Form (binaer) ablegen und bei dieser Gelegenheit Syntaxfehler erkennen. Trotzdem kann er ja bei der Ausfuehrung zeilenweise vorgehen, inclusive der Pruefung, ob es eine aufgerufene Funktion ueberhaupt gibt. Jedenfalls liessen sich so imho am einfachsten solche Dinge implementieren wie
if (document.images)   mach_was_mit_images();    (In mach_was_mit_images werden ja Dinge getan, die z.B. der IE3 gar nicht kann, trotzdem gibt es keine Fehlermeldung, er darf sich den True-Zweig also gar nicht so genau anschauen.)

»»  Wenn die Syntax OK ist, legt er dann einfach zeilenweise los.

Eben.

Logische Laufzeitfehler oder andere Probleme wie Stack-Overflow in Folge hauefiger rekursiver Aufrufe erkennen die heutigen JS-Interpreter meiner Erfahrung nach leider erst, wenn das Malheur passiert ist, nicht vorher (das sind Dinge, da ist z.B. der Perl-Interpreter um Lichtjahre weiter).

Das verstehe ich jetzt nicht. Logische Fehler kann der Interpreter doch eigentlich gar nicht erkennen, sie passieren einfach, oder? Oder was meinst Du jetzt damit?

Calocybe