Dépannage de vos scripts

Tous les langages de programmation sont susceptibles de receler des pièges et réserver quelques surprises aux utilisateurs expérimentés ou novices. Voici quelques problèmes que vous pouvez rencontrer lorsque vous écrivez des scripts JScript.

Erreurs de syntaxe

La syntaxe étant beaucoup plus rigide en langage de programmation qu'en langage naturel, il convient de prêter une grande attention aux détails quand vous rédigez des scripts. Si, par exemple, vous souhaitez qu'un certain paramètre soit une chaîne, vous aurez des problèmes si vous oubliez de le mettre entre guillemets.

Ordre d'interprétation du script

Dans une page Web, l'interprétation JScript dépend du processus d'analyse du code HTML de chaque navigateur. Un script placé à l'intérieur de la balise <HEAD> est interprété avant celui qui est contenu dans la balise <BODY>. En conséquence, des objets qui sont créés dans la balise <BODY> n'existent pas au moment où le navigateur analyse l'élément <HEAD> et ne peuvent être manipulés par le script.

Notes

Ce comportement est spécifique à Internet Explorer. ASP et WSH ont des modèles d'exécution différents (comme c'est le cas d'autres hôtes).

Contrainte de type automatique

JScript est un langage faiblement typé avec forçage automatique. Par conséquent, même si des valeurs ayant des types différents ne sont pas véritablement égales, les expressions de l'exemple suivant correspondent à true.

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

Pour vérifier si le type et la valeur sont identiques, utilisez l'opérateur d'identité, ===. Les deux expressions suivantes correspondent à false :

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

Priorité des opérateurs

L'ordre d'exécution des opérations lors de l'évaluation d'une expression dépend plus de la priorité des opérateurs que de l'ordre des opérateurs dans l'expression. Par conséquent, dans l'exemple suivant, la multiplication s'effectue avant la soustraction, bien que l'opérateur de soustraction apparaisse avant la multiplication dans l'expression.

theRadius = aPerimeterPoint - theCenterpoint * theCorrectionFactor;

Pour plus d'informations, consultez Priorité des opérateurs.

Utilisation de boucles for...in avec des objets

Lorsqu'un script parcourt les propriétés d'un objet au moyen d'une boucle for…in, il n'est pas toujours possible de prédire ni contrôler l'ordre dans lequel les champs de l'objet sont assignés à la variable compteur de la boucle. En outre, l'ordre peut différer en fonction des implémentations du langage. Pour plus d'informations, consultez for...in, instruction.

Mot clé with

Même si le mot clé with permet de recourir à des propriétés qui existent déjà dans un objet spécifié, il ne peut pas servir à ajouter des propriétés à un objet. Pour créer de nouvelles propriétés dans un objet, vous devez faire spécifiquement référence à cet objet. Pour plus d'informations, consultez with, instruction.

Mot clé this

Même si le mot clé this existe à l'intérieur de la définition d'un objet, vous ne pouvez généralement pas utiliser this ou des mots clés similaires pour faire référence à la fonction en cours d'exécution si cette dernière n'est pas une définition d'objet. Si la fonction doit être assignée à un objet en tant que méthode, un script peut utiliser le mot clé this à l'intérieur de la fonction pour faire référence à l'objet. Pour plus d'informations, consultez this, instruction.

Élaboration d'un script qui écrit un script dans Internet Explorer ou ASP.NET

La balise </SCRIPT> termine le script en cours si l'interpréteur le trouve. Pour afficher « </SCRIPT> » lui-même, écrivez-le en deux ou plusieurs chaînes, par exemple « </SCR » et « IPT> », que le script peut ensuite concaténer dans l'instruction qui les écrit.

Références de fenêtre implicites dans Internet Explorer

Dans la mesure où plusieurs fenêtres peuvent être ouvertes simultanément, toute référence de fenêtre implicite sert à désigner la fenêtre active. Pour les autres fenêtres, vous devez utiliser une référence explicite.

Voir aussi

Tâches

Écriture de code JScript avec Visual Studio

Concepts

Débogage de JScript avec Visual Studio

Autres ressources

Écriture, compilation et débogage de code JScript