Freigeben über


Problembehandlung bei Skripts

Aktualisiert: November 2007

Alle Programmiersprachen enthalten potenzielle Fehlerquellen und Überraschungen, ob Sie ein geübter Benutzer sind oder noch wenig Erfahrung mit dem Programmieren haben. Im Folgenden werden einige mögliche Problembereiche beim Schreiben von Skripts in Jscript erörtert.

Syntaxfehler

Da die Syntax von Programmiersprachen weitaus strenger ist als die natürlicher Sprachen, muss ein besonderes Augenmerk beim Schreiben von Skripts auf die Details gerichtet werden. Wenn beispielsweise ein bestimmter Parameter eine Zeichenfolge sein soll, treten Probleme auf, wenn Sie vergessen, diesen bei der Eingabe in Anführungszeichen zu setzen.

Reihenfolge der Skriptinterpretation

Auf einer Webseite hängt die Jscript-Interpretation vom HTML-Analyseprozess im jeweiligen Browser ab. Ein Skript innerhalb des <HEAD>-Tags wird vor dem Text innerhalb des <BODY>-Tags interpretiert. Folglich gelten Objekte, die innerhalb des <BODY>-Tags erstellt werden, bei der Analyse des <HEAD>-Elements durch den Browser als nicht vorhanden und können durch das Skript nicht verarbeitet werden.

Hinweis:

Dieses Verhalten ist spezifisch für Internet Explorer. ASP und WSH verfügen über unterschiedliche Ausführungsmodelle (wie auch andere Hosts).

Automatische Typumwandlung

Jscript ist eine Sprache mit flexibler Typbindung und automatischer Umwandlung. Folglich werden die Ausdrücke im folgenden Beispiel als true ausgewertet, obwohl Werte mit unterschiedlichen Typen nicht strikt identisch sind.

"100" == 100;
false == 0;

Verwenden Sie den strikten Gleichheitsoperator ===, um zu überprüfen, ob Typ und Wert identisch sind. Die folgenden Ausdrücke werden beide als false ausgewertet:

"100" === 100;
false === 0;

Operatorrangfolge

Die Reihenfolge der Ausführung während der Auswertung eines Ausdrucks hängt mehr von der Operatorrangfolge als von der Reihenfolge der Operatoren in dem Ausdruck ab. Daher wird im folgenden Beispiel die Multiplikation vor der Subtraktion durchgeführt, obwohl der Subtraktionsoperator im Ausdruck vor dem Multiplikationsoperator steht.

theRadius = aPerimeterPoint - theCenterpoint * theCorrectionFactor;

Weitere Informationen finden Sie unter Operatorrangfolge.

Verwenden von for...in-Schleifen mit Objekten

Wenn in einem Skript die Eigenschaften eines Objekts mit einer for…in-Schleife durchlaufen werden, können Sie die Reihenfolge, in der die Felder des Objekts der Schleifenzählvariablen zugewiesen werden, nicht unbedingt vorhersagen oder steuern. Darüber hinaus kann die Reihenfolge in verschiedenen Implementierungen der Sprache unterschiedlich sein. Weitere Informationen finden Sie unter for...in-Anweisung.

with-Schlüsselwort

Das with-Schlüsselwort ist nützlich zum Ansprechen von Eigenschaften, die in einem bestimmten Objekt bereits vorhanden sind. Sie kann jedoch nicht verwendet werden, um Eigenschaften zu einem Objekt hinzuzufügen. Wenn Sie neue Eigenschaften in einem Objekt erstellen möchten, müssen Sie ausdrücklich auf das Objekt verweisen. Weitere Informationen finden Sie unter with-Anweisung.

this-Schlüsselwort

Obwohl das this-Schlüsselwort innerhalb der Definition eines Objekts vorhanden ist, können Sie this oder ähnliche Schlüsselwörter normalerweise nicht verwenden, um auf die gegenwärtig ausgeführte Funktion zu verweisen, wenn diese Funktion keine Objektdefinition ist. Wenn die Funktion einem Objekt als Methode zugewiesen werden soll, kann ein Skript das this-Schlüsselwort innerhalb der Funktion verwenden, um auf das Objekt zu verweisen. Weitere Informationen finden Sie unter this-Anweisung.

Schreiben eines Skriptes, das ein Skript in Internet Explorer oder ASP.NET schreibt

Das </SCRIPT>-Tag beendet das aktuelle Skript, wenn der Interpreter darauf trifft. Um "</SCRIPT>" selbst anzuzeigen, schreiben Sie dieses Tag als mindestens zwei Zeichenfolgen, z. B. als "</SCR" und "IPT>", die Sie danach in der Anweisung, die diese schreibt, miteinander verketten können.

Implizite Fensterverweise in Internet Explorer

Da zu einem Zeitpunkt mehrere Fenster geöffnet sein können, zeigt jeder implizite Fensterverweis auf das aktuelle Fenster. Für andere Fenster müssen Sie explizite Verweise verwenden.

Siehe auch

Aufgaben

Schreiben von JScript-Code mit Visual Studio

Konzepte

Debuggen von JScript mit Visual Studio

Weitere Ressourcen

Schreiben, Kompilieren und Debuggen von JScript-Code