Adloun

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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →