Suche nach als

Fehlersuche

Auf dieser Seite:

Notation

Einzelne Zeichen

Was bedeuten diese Klammern, Punkte und Semikollon? Was machen diese kryptischen Angaben?

Zeichenbedeutung
; jede einzelne Anweisung wird mit ; abgeschlossen.

-Dies ist nicht immer erforderlich, wenn z.B. eine Anweisung nur eine Zeile hat, genügt ein Zeilenumbruch.
Es wäre aber besser- sauberer Code zu schreiben.

{
}

Anweisungsblock, Zusammenfassung mehrerer Anweisungen - zB. für eine if-Abfrage oder in einer Funktion
solche Blöcke können ineinander verschachtelt werden
// kommentiert den Rest der Zeile aus, alles folgende auf dieser Zeile wird nicht dargestellt

/*   */

kommentiert alles dazwischen liegende aus, über mehrere Zeilen hinweg
Kommentare sind sehr sinnvoll und sollten ausgiebig genutzt werden, damit man später das Script noch nachvollziehen kann und die Fehlersuche erleichtert wird
. (Punkt) Aneinanderreiung: zwischen Objekt.Unterobjekt.Methode trennen
, (Koma) Aneinanderreiung: mehrere Event-Handler trennen, Variablen trennen
" " oder ' '
(Anführungszeichen)
Text-String wird wörtlich ausgegeben, Wert im Event-Handler, Wert in HTML,
( ) (Runde Klammern) Instanz einer Methode, Parameter einer Funktion
< > (Spitze Klammern) erzeugt HTML in einem String
[ ] (Eckige Klammern) Array Indizes: Nummeriertes Verzeichnis eines Array, erster Eintrag beginnt immer bei [0]
= Zuweisungs Operator für den Wert einer Variablen
..." + ... Verknüpfungs-Operator: Verknüpft einen String mit einer Variablen. String in Anführungszeichen, Variable ohne Anführungszeichen
+ - >= % & * || ! ^ ~ weitere Operatoren -VergleichsOp, BerechnungsOp, LogischeOp, BitOp
? : if-else Bedingung spezial Schreibweise
\ Steuerungszeichen, Entwertungszeichen

Fehler finden

Welches sind die häufigsten Fehler?

Fehrerursachen
In der Statuszeile erscheint ein gelbes Dreieck mit Ausrufezeichen: Wenn darauf doppelt geklickt wird, öffnet sich ein Popup mit der Fehlermeldung, welche die Fehler-Zeile von Dokumentanfang an (nicht erst vom Beginn des JavaScripts an) mit einer Zahl angibt.
Syntax error Ein Syntax error wird ausgegeben, wenn das Skript einen Schreibfehler aufweist, ein doppeltes Anführungszeichen statt eines einfachen verwendet wurde (unbalanced quotes).
document.write("text for the page"
) </SCRIPT> </BODY>
</HTML>
Syntax errors gibt es auch, wenn ein Befehl angefangen aber nicht beendet wird:
) - auf einer neuen Zeile produziert ein Syntax error
Run-Time error Ein Run-Time error wird ausgegeben, wenn ein unpassender Befehl verwendet wurde, wenn ein Fehler in der Ablauflogik auftritt. Z.B. den Namen eines Button aufrufen durch einen Befehl, welcher eine Textbox meint
Namen vergeben für Funktion oder Variable: JavaScript unterscheidet Gross und Kleinschreibung: glEich, Gleich, GLEICH, gleIch sind nicht gleich !
  Namen können alle Buchstaben enthalten, nicht mehr als 32 Zeichen, den _ und Zahlen, aber sie dürfen nicht mit einer Zahl beginnen. Leerschläge und Punkte dürfen nicht in Namen vorkommen.
funktion statt function geschrieben
void delete Es gibt für's JavaScript reservierte Worte, welche nicht als Namen für Variablen oder Funktionen verwendet werden dürfen.
Weitere Fehlerquellen,
die zu Errormessages führen:
 
; Ende der Befehlszeile nicht mit Strichpunkt beendet
} Funktion nicht mit geschweifter Klammer abgeschlossen
config='height=300, width=300') Features mit Leerschlag dazwischen -hier nach dem Komma-
nur = statt == zB. in einer if-Abfrage, einer Variablen wird ein Wert zugeordnet, statt dass ihr Wert mit einem anderen verglichen würde

 

Eine klahre Struktur ist von grossem Vorteil und gute Ausdokumentierung mit Kommentaren hilft sehr beim Debugging.

Debuger

Welche Hilfsmittel stehen mir zur Verfügung?

Debuger Tools
Für den FireFox Browser Plug-in welche nach der Installation unter Extras stehen:
Web Developer
Firebug
Fehlerkonsole

Fehler vermeiden

Wie kann ich Fehler auffangen noch bevor sie auftreten?

Vorsorgliche Strategien um eventuelle Fehler aufzufangen
try {
// mach mal was
}
catch(e) {
// mach was im Fehlerfall
}
finally {
// mach das in Jedemfall
}
Versuche den ersten Anweisungsblock auszuführen
fall der Versuch fehlschlägt (z.B. weil es den Array gar nicht gibt),

geht's unten im "catch" Block weiter.
das Argument (e) meint: Es wird keine Fehlermeldung angezeigt.

Einer von beiden Blöcken, der "catch" oder der "finally", ist optional.
Der "finally" Block wird immer ausgeführt.



Valid XHTML 1.0 Check den Code.

Sprachelemente: >> << Einführung
Ich bin hier: > JavaScript Lehrling >> Fehlersuche
 
HTML und XHTML | CSS | JavaScript und DHTML | PHP und MySQL | Andere Sprachen
Letzter Update: 29.01.2010