JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 1 · Exercice de TD
Le mode strict
Premiers pas en JavaScript · niveau 2
Énoncé
Le même script, total = 32 + 27; suivi de console.log("Total :", total);, est chargé par deux pages : l'une par <script src="script.js" defer>, l'autre par <script type="module" src="script.js">. Qu'affiche la console dans chaque cas ? Lequel des deux comportements est préférable, et pourquoi ? Et si l'on exécute la ligne dans un fichier total.js avec Node.js ?
Corrigé
Avec defer (script classique, mode non strict), l'affectation crée une variable globale :
Total : 59
Avec le module (mode strict), c'est une erreur :
Uncaught ReferenceError: total is not defined
Le second comportement est préférable : un nom mal orthographié dans une affectation (totl = 0) créerait sinon une nouvelle variable en silence, et le programme continuerait avec des valeurs fausses. Il faut déclarer : const total = 32 + 27;. Dans un fichier .js, Node.js applique l'ancien système de modules, non strict : il affiche 59, comme le script classique.
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.