JavaScript a longtemps évolué sans problèmes de compatibilité. De nouvelles fonctionnalités ont été ajoutées au langage, mais les anciennes fonctionnalités nâont pas été modifiées.
Cela a 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 dans le langage pour toujours.
Il en avait été ainsi jusquâen 2009 lorsque ECMAScript 5 (ES5) est apparu. Il a ajouté de nouvelles fonctionnalités au langage et modifié certaines des fonctionnalités existantes. Pour conserver lâancien code, la plupart des 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 se trouve en haut du script, lâensemble du script fonctionne de manière âmoderneâ.
Par exemple
"use strict";
// ce code fonctionne de manière moderne
...
Nous allons bientôt apprendre les fonctions (un moyen de regrouper les commandes). à lâavenir, notons que "use strict" peut être placé au début du corps de la fonction. Faire cela active le mode strict dans cette fonction uniquement. Mais dâhabitude, les gens lâutilisent pour tout le script.
Assurez-vous que "use strict" est en haut du script, sinon le mode strict peut ne pas être activé.
Il nây a pas de mode strict ici :
alert("some code");
// "use strict" ci-dessous est ignoré, il doit être en haut
"use strict";
// le mode strict n'est pas activé
Seuls les commentaires peuvent apparaître avant "use strict".
use strictIl nây a pas de directive "no use strict" ou similaire, qui réactiverait lâancien comportement.
Une fois que nous entrons dans le mode strict, il nây a plus de retour possible.
Console du Navigateur
Pour lâavenir, lorsque vous utilisez une console de navigation pour tester des fonctionnalités, veuillez noter quâelle nâutilise pas use strict par défaut.
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 obtenez des résultats incorrects.
Alors, comment utiliser 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 cela :
'use strict'; <Shift+Enter for a newline>
// ...votre code
<Enter to run>
Cela fonctionne dans la plupart des navigateurs, Ã savoir Firefox et Chrome.
Si ce nâest pas le cas, comme par exemple dans un ancien navigateur, le moyen le plus fiable dâassurer use strict serait dâencapsuler le code dans la console comme ceci :
(function() {
'use strict';
// ... votre code ici ...
})()
Devrions-nous activer âuse strictâ ?
La question peut sembler évidente, mais ce nâest pas le cas.
On pourrait recommander de démarrer les scripts avec "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 arriverons sûrement), qui activent automatiquement use strict. 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 est entièrement dans des classes et des modules, vous pouvez lâomettre.
A partir de maintenant, nous devons connaître use strict en général.
Dans les chapitres suivants, au fur et à mesure que nous apprendrons les fonctionnalités du langage, nous verrons les différences entre les modes strict et anciens modes. Heureusement, il nây en a pas beaucoup et ils améliorent en fait nos vies.
Tous les exemples de ce tutoriel supposent le mode strict, sauf indication contraire (très rarement).
Commentaires
<code>, pour plusieurs lignes â enveloppez-les avec la balise<pre>, pour plus de 10 lignes - utilisez une sandbox (plnkr, jsbin, codepenâ¦)