Dépannage de vos scripts
Mise à jour : novembre 2007
Tous les langages de programmation sont susceptibles de receler des pièges et réserver quelques surprises aux utilisateurs expérimentés ou novices. Vous devez être particulièrement attentif aux points suivants 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 de JScript dépend du processus d'analyse 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.
Remarque : |
---|
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 peu typé de contrainte 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