Mode strict

8 min Niveau 8

use strict” n’est pas une déclaration, mais une expression littérale qui n’existait pas dans les versions antérieures à la version 5 du langage.

Cette directive permet d’indiquer aux navigateurs que le code doit être exécuté en mode strict, qui est un mode beaucoup plus restrictif. Cela aide néanmoins à écrire du code plus propre, car ce mode ne permet pas, par exemple, de pouvoir utiliser des variables qui n’ont pas été préalablement déclarées. C’est un mode plus restrictif, en quelque sorte.

Cette directive ne fonctionne pas sur Internet Explorer 9 et antérieur.

Remarque : “use strict” est une simple chaîne de caractères, donc si un navigateur ne sait pas l’interpréter, cela ne retournera pas pour autant une erreur.

Déclarer le mode strict

Ce mode est déclaré en plaçant la directive use strict en première ligne d’un programme JavaScript ou d’une fonction.

En plaçant cette directive en haut d’un code lui donnera une portée globale ; c’est donc la totalité du code qui est exécuté en mode strict.

Exemple :

"use strict";
x = 3.14;

Le code ci-dessus retourne une erreur, car la variable x n’a pas été déclarée avant d’être utilisée.

En revanche, déclaré au sein d’une fonction, le mode strict a une portée locale. C’est donc seulement la fonction qui est exécutée en mode strict.

Exemple :

x = 3.14; 
myFunction();

function myFunction() {
    "use strict";
    y = 3.14; 
}

Ici, il n’y a que la fonction qui retourne une erreur. En effet, le mode strict est déclaré en son sein - il a donc une portée locale - et ne permet donc pas d’utiliser une variable sans l’avoir déclarée avant.

La syntaxe “use strict”

La syntaxe évoquée dans le point précédent pour déclarer le mode strict a été conçue afin de correspondre aux versions plus anciennes de JavaScript.

Ainsi, compiler une expression telle que 4+5 ou une chaîne de caractère ne crée pas d’“effet secondaire”. Le code est simplement compilé dans une variable inexistante et meurt.

Donc use strict importe réellement pour les nouveaux compilateurs qui “comprennent” sa signification.

Pourquoi utiliser le mode strict ?

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus