JavaScript tolère par défaut des maladresses qu’un autre langage refuserait, comme créer une variable sans la déclarer. Le mode strict ferme cette porte : il rend le langage plus exigeant, au bénéfice de la fiabilité du code.
Une base pour le JavaScript moderne
Les modules ES et les classes JavaScript activent automatiquement le mode strict, sans qu’il soit nécessaire de l’écrire explicitement. C’est donc la norme dans tout script moderne d’un thème WordPress construit avec des modules, ou dans les fichiers manipulés par un empaqueteur comme webpack lors de la compilation d’un bloc Gutenberg.
Exemple
'use strict';
function calculerTotal() {
total = 100; // erreur : variable non déclarée
}
calculerTotal(); // ReferenceError en mode strict
Sans la directive 'use strict', cette même instruction créerait silencieusement une variable globale total, source classique de bugs difficiles à repérer.
Bon à savoir
- La directive se place en tout premier dans un fichier ou une fonction ; ailleurs, elle est ignorée sans avertissement.
- Le mode strict interdit aussi la duplication de noms de paramètres dans une fonction et restreint l’usage du mot-clé
this, qui vautundefinedplutôt que l’objet global dans une fonction appelée seule. - Un linter comme ESLint peut signaler l’absence de mode strict dans du code qui n’en bénéficie pas automatiquement, par exemple un vieux script chargé sans système de modules.