Pendant longtemps, JavaScript a évolué sans problèmes de compatibilité. De nouvelles fonctionnalités ont été ajoutées au langage tandis que les anciennes fonctionnalités n'ont pas changé.
Cela avait l’avantage de ne jamais casser le code existant. Mais l'inconvénient était que toute erreur ou décision imparfaite prise par les créateurs de JavaScript restait bloquée pour toujours dans le langage.
Ce fut le cas jusqu'en 2009, date à laquelle ECMAScript 5 (ES5) est apparu. Il a ajouté de nouvelles fonctionnalités au langage et modifié certaines de celles existantes. Pour que l'ancien code continue de fonctionner, la plupart de ces modifications sont désactivées par défaut. Vous devez les activer explicitement avec une directive spéciale : "use strict"
.
La directive ressemble à une chaîne : "use strict"
ou 'use strict'
. Lorsqu'il est situé en haut d'un script, l'ensemble du script fonctionne de manière « moderne ».
Par exemple:
« utiliser strict » ; // ce code fonctionne de manière moderne ...
Très bientôt nous allons apprendre les fonctions (une façon de regrouper des commandes), notons donc d'avance que "use strict"
peut être mis au début d'une fonction. Cela active le mode strict dans cette fonction uniquement. Mais généralement, les gens l’utilisent pour l’ensemble du script.
Assurez-vous que « use strict » est en haut
Veuillez vous assurer que "use strict"
est en haut de vos scripts, sinon le mode strict risque de ne pas être activé.
Le mode strict n'est pas activé ici :
alert("du code"); // "use strict" ci-dessous est ignoré -- il doit être en haut « utiliser strict » ; // le mode strict n'est pas activé
Seuls les commentaires peuvent apparaître au-dessus de "use strict"
.
Il n'y a aucun moyen d'annuler use strict
Il n'existe pas de directive telle que "no use strict"
qui ramène le moteur à son ancien comportement.
Une fois que nous passons en mode strict, il n’y a plus de retour en arrière.
Lorsque vous utilisez une console de développement pour exécuter du code, veuillez noter qu'elle n'utilise pas use strict
par défaut.
Parfois, lorsque use strict
fait une différence, vous obtiendrez des résultats incorrects.
Alors, comment use strict
dans la console ?
Tout d’abord, vous pouvez essayer d’appuyer sur Shift + Enter pour saisir plusieurs lignes et mettre use strict
en haut, comme ceci :
« utiliser strict » ; <Maj+Entrée pour une nouvelle ligne> // ...votre code <Entrer pour exécuter>
Cela fonctionne dans la plupart des navigateurs, à savoir Firefox et Chrome.
Si ce n'est pas le cas, par exemple dans un ancien navigateur, il existe un moyen laid mais fiable de garantir use strict
. Mettez-le dans ce type d'emballage :
(fonction() { « utiliser strict » ; // ...votre code ici... })()
La question peut paraître évidente, mais il n’en est rien.
On pourrait recommander de démarrer les scripts par "use strict"
… Mais vous savez ce qui est cool ?
Le JavaScript moderne prend en charge les « classes » et les « modules » – des structures de langage avancées (nous y reviendrons sûrement), qui permettent use strict
automatiquement. Nous n'avons donc pas besoin d'ajouter la directive "use strict"
, si nous les utilisons.
Donc, pour l'instant, "use strict";
est un invité bienvenu en haut de vos scripts. Plus tard, lorsque votre code sera entièrement contenu dans des classes et des modules, vous pourrez l'omettre.
Pour l’instant, nous devons connaître use strict
en général.
Dans les prochains chapitres, à mesure que nous apprendrons les fonctionnalités du langage, nous verrons les différences entre les modes strict et ancien. Heureusement, il n’y en a pas beaucoup et ils améliorent réellement nos vies.
Tous les exemples de ce didacticiel supposent le mode strict, sauf indication contraire (très rarement).