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