JavaScript est un langage qui pardonne. Une partie de sa syntaxe est facultative et le langage récupère des erreurs avec plus de grâce que beaucoup d'autres. Mais cette prise en main s'accompagne d'une pénalité: il peut être plus facile d'introduire des bogues et un code incohérent est plus difficile à lire.
Heureusement, si vous souhaitez exercer plus de discipline, il existe un moyen simple de le faire: le mode strict. Le mode strict est un moyen de demander à JavaScript de réagir de manière plus décisive lorsqu'il rencontre des problèmes dans votre code.
Qu'est-ce qu'un mode strict ?
Plusieurs langages utilisent le concept de mode strict: un mode qui évalue et exécute le code de manière plus rigoureuse. Vous connaissez peut-être le doctype HTML strict, qui désapprouve certains éléments et attributs.
Perl, un autre langage de script interprété, a depuis longtemps son propre mode strict. Ce mode interdit certains types d'expressions non sécurisées.
Comment utiliser le mode strict en JavaScript ?
À l'intérieur d'un script, placez une déclaration « use strict » tout en haut, avant toute autre déclaration :
// tout ce script sera en mode strict
« utiliser strict » ;
Notez que vous pouvez inclure un commentaire avant celui-ci, mais pas d'instructions. Vous pouvez activer le mode strict dans un fichier JavaScript ou au début d'un bloc de script dans un fichier HTML. Vous pouvez également activer le mode strict fonction par fonction :
fonction stricte() {
// Syntaxe en mode strict au niveau de la fonction
« utiliser strict » ;
return "Cette fonction est stricte" ;
}
fonction lâche () {
return "Cette fonction n'est PAS stricte" ;
}
Une fois que vous avez activé le mode strict, assurez-vous de tester votre code. Si vous travaillez avec le Web, ouvrez un console JavaScript, afin que vous puissiez identifier toute nouvelle erreur.
À quoi sert le mode strict de JavaScript ?
Bref, le mode strict sera moins indulgent pour certains types de code problématique. Plutôt que d'ignorer les problèmes et de poursuivre l'exécution, certaines erreurs arrêteront le script. C'est souvent plus sûr que de continuer dans des circonstances indésirables.
Empêche les Globals accidentels
Le meilleur exemple contre lequel le mode strict protège est la création de variables globales accidentelles. En exécution normale, ce code :
maVar = 17 ;
Il créera une propriété nommée myVar sur l'objet global, en supposant que vous n'ayez pas déjà déclaré myVar. Dans un navigateur Web, l'objet global est généralement window :
console.log (window.myVar);
>> 17
Cependant, si vous incluez une instruction "use strict", vous verrez une erreur dans la console, quelque chose comme :
Uncaught ReferenceError: myVar n'est pas défini
La raison pour laquelle cela est si utile est qu'il détecte un cas courant de faute de frappe. Il est facile de mal taper le nom d'une variable, et de nombreuses langues nous détecteraient sur une telle erreur.
Mais JavaScript, par défaut, assume simplement la portée de l'objet global et continue comme si de rien n'était. Certains codes peuvent intentionnellement dépendre de ce comportement, ce dont vous devez être conscient lorsque vous décidez d'utiliser le mode strict.
Voir également: Comment garder votre code propre avec l'encapsulation d'objets
Rend l'échec explicite
Certains comportements en JavaScript échouent, mais ils le font en silence. Vous n'êtes peut-être pas au courant de ces erreurs, à moins que vous ne les recherchiez spécifiquement. Par exemple, NaN est une propriété spéciale de l'objet global qui représente un nombre invalide. Cette propriété est en lecture seule, mais vous pouvez toujours essayer d'y écrire :
NaN = 2 ;
>> 2
Mais même s'il semble que cette mission a réussi, elle n'a pas :
NaN
>> NaN
En mode strict, vous obtiendrez une erreur réelle vous indiquant que vous ne pouvez pas affecter à NaN. Ce code utilise une fonction pour que vous puissiez faire une démonstration du mode strict dans la console :
javascript
function badNaN() { "utiliser strict"; la fenêtre. NaN = 2; }
>> non défini
mauvaisNan()
>> Uncaught TypeError: impossible d'attribuer à la propriété en lecture seule 'NaN' de l'objet '#'
à badNaN (:1:46)
à :1:1
C'est un exemple classique qui montre que, si l'ignorance peut être un bonheur, il est parfois préférable de savoir si quelque chose ne va pas.
Avertit des paramètres en double
Le dernier exemple traite d'une fonctionnalité peu connue de JavaScript. Vous serez peut-être surpris d'apprendre que les noms de paramètres ne doivent pas nécessairement être uniques :
fonction dupeParam (a, a, c) { console.log (a); }
>> non défini
dupeParam (2, 4, 8)
>> 4
Notez que JavaScript affecte la dernière valeur à un paramètre en double. Or, ce comportement n'est pas particulièrement utile. En fait, il serait plus utile que JavaScript nous dise qu'il s'agit d'une erreur, et c'est exactement ce que fait le mode strict :
function dupeParam (a, a, c) { "utiliser strict"; }
<< Uncaught SyntaxError: nom de paramètre en double non autorisé dans ce contexte
Utilisez le mode strict pour une confiance supplémentaire dans le code
Les bonnes pratiques et les moyens de les faire respecter vont de pair. Dans certains contextes, comme un rôle de programmeur professionnel, vous voudrez exercer autant de discipline que possible. Même si vous ne travaillez que sur un projet open source amateur, le mainteneur peut préférer utiliser le mode strict par défaut.
En fin de compte, cela dépend de vous, mais il est utile de savoir qu'un coup de main est disponible. En tant que programmeur, vous devez toujours être à l'affût des meilleures pratiques et de ce que vous pouvez faire pour les appliquer.
Votre code doit être clair et facile à maintenir. Voici plusieurs autres principes de programmation pour vous aider à nettoyer votre acte.
Lire la suite
- La programmation
- JavaScript
- Développement web
- Langages de programmation
Bobby est un passionné de technologie qui a travaillé comme développeur de logiciels pendant près de deux décennies. Il est passionné par les jeux, travaillant comme rédacteur en chef chez Switch Player Magazine, et est immergé dans tous les aspects de la publication en ligne et du développement Web.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !
Cliquez ici pour vous abonner