Si vous entrez les valeurs 2 et 3 dans la figure 1 et si vous cliquez sur Add, le quatrième élément d’entrée montre la valeur 23. Comment cela s’est-il produit ? Il est difficile de savoir ce qui se passe dans votre JavaScript sans un débogueur ou ma fenêtre log
Fonctions et types de données
JavaScript. Si vous examinez la fenêtre log dans Internet Explorer, vous verrez :
add([object],[object]) string 23
tandis que la fenêtre log Firefox montre
add([object HTMLInputElement], [object HTMLInputElement]) string 23
Dans la figure 1, la première ligne log construit et journalise une chaîne qui donne le nom de la fonction concaténée avec ses paramètres et, pour la clarté de la journalisation, le séparateur virgule et la parenthèse fermante. La sortie de l’instruction log montrera que les objets ont été passés comme des paramètres. A ce propos, il vaut mieux utiliser Firefox parce qu’il est plus explicite que Internet Explorer et qu’il indique le type d’objet exact. Les deux instructions qui suivent le premier log définissent deux variables locales appelées one et two. Les variables définies à l’intérieur d’une fonction sont locales par rapport à celles-ci. Les variables sont définies d’après des valeurs de référence entrées dans le premier et second champs form input HTML (passées comme paramètres a et b à la fonction add). La seconde instruction log utilise l’opérateur typeof pour lister le type d’objet de la variable one qui, dans cet exemple, est un type chaîne. La dernière instruction log utilise l’opérateur plus pour ajouter les valeurs référencées par les variables one et two, mais le résultat n’est pas celui que vous pourriez attendre. Comme je l’ai déjà dit, JavaScript a une syntaxe permissive et les variables ne sont pas fortement typées. Vous pouvez assigner un objet ou tout type à n’importe quelle variable. Comme le type de données pour les variables one et two est string, l’opérateur plus concatène les deux chaînes et renvoie 23.
Pour corriger la fonction add, nous devons utiliser un objet spécial JavaScript appelé Number qui convertit une chaîne en un nombre :
function add(a, b)
{
var one = Number(a.value);
var two = Number(b.value);
log(typeof one); log(one + two);
return one+two;
}
Un test de la page ajoutée avec 2 et 3 produit la sortie de fenêtre log : add([object HTMLInputElement], [object HTMLInputElement]) number 5 Pour désactiver le logging du code de production, mettez la variable logWin à null et commentez le
window.open() : var logWin = null; // window.open();
Si vous voulez nettoyer votre code pour éviter une erreur JavaScript quand la page se ferme avec une variable logWin nulle, changez l’événement onload du body tag en :
<body onunload="if (logWin != null) logWin.close();">
Téléchargez cette ressource
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Souveraineté des données : bâtir un stockage hybride adapté à l’ère de l’IA
- Secteur public : l’IA accélère la modernisation des infrastructures
- De l’inventaire à l’action : l’Asset Management au service d’un Numérique plus responsable
- IA et bureaucratie : la complexité qui grève les projets
Articles les + lus
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
À la une de la chaîne Tech
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
