Le mode moderne, « use strict »

Pendant longtemps, JavaScript a évolué sans problème de compatibilité. De nouvelles fonctionnalités étaient ajoutées au langage tandis que les anciennes ne changeaient pas.

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 coincée dans le langage pour toujours.

C’était le cas jusqu’en 2009, lorsque l’ECMAScript 5 (ES5) est apparu. Il a ajouté de nouvelles fonctionnalités au langage et modifié certaines des fonctionnalités 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".

« use strict »

La directive ressemble à une chaîne de caractères : "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 :

"use strict";// this code works the modern way...

Bientôt, nous allons apprendre les fonctions (une façon de regrouper les commandes), alors notons d’avance que "use strict" peut être mis au début d’une fonction. En faisant cela, on active le mode strict dans cette fonction uniquement. Mais généralement, les gens l’utilisent pour tout le script.

Veuillez vous assurer que « use strict » est en haut
Veuillez vous assurer que "use strict" est en haut de vos scripts, sinon le mode strict pourrait ne pas être activé.

Le mode strict n’est pas activé ici :

alert("some code");// "use strict" below is ignored--it must be at the top"use strict";// strict mode is not activated

Seuls les commentaires peuvent apparaître au-dessus de "use strict".

Il n’y a aucun moyen d’annuler use strict

Il n’y a pas de directive comme "no use strict" qui ramène le moteur à l’ancien comportement.

Une fois que nous entrons en mode strict, il n’y a pas de retour en arrière.

Console de navigateur

Lorsque vous utilisez une console de développeur pour exécuter du code, veuillez noter qu’elle ne use strict pas par défaut.

Parfois, lorsque use strict fait une différence, vous obtiendrez des résultats incorrects.

Alors, comment faire pour réellement use strict dans la console ?

D’abord, vous pouvez essayer d’appuyer sur Shift+Enter pour saisir plusieurs lignes, et mettre use strict en haut, comme ceci :

'use strict'; <Shift+Enter for a newline>// ...your code<Enter to run>

Cela fonctionne dans la plupart des navigateurs, à savoir Firefox et Chrome.

Si ce n’est pas le cas, par exemple dans un vieux navigateur, il existe un moyen laid, mais fiable, d’assurer le use strict. Mettez-le à l’intérieur de ce genre de wrapper :

(function() { 'use strict'; // ...your code here...})()

Doit-on « utiliser strict » ?

La question peut sembler évidente, mais ce n’est pas le cas.

On pourrait recommander de commencer les scripts avec "use strict"… Mais vous savez ce qui est cool ?

Le JavaScript moderne supporte les  » classes  » et les  » modules  » – des structures de langage avancées (nous y viendrons sûrement), qui permettent d’activer 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 dans des classes et des modules, vous pourrez l’omettre.

Pour l’instant, nous avons appris à connaître use strict en général.

Dans les prochains chapitres, au fur et à mesure que nous apprendrons les fonctionnalités du langage, nous verrons les différences entre le mode strict et l’ancien mode. Heureusement, il n’y en a pas beaucoup et elles améliorent réellement notre vie.

Tous les exemples de ce tutoriel supposent le mode strict, sauf (très rarement) spécification contraire.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *