Qu'est-ce que "use strict" Quels sont les avantages et désavantage de son utilisation

J’ai l’erreur suivante lorsque j’exécute mon code JavaScript

Problem at line 5 character 6: Missing « use strict » statement.

En faisant quelques recherches, je me suis rendu compte que certaines développeurs ajoutent « use strict » ; dans leur code JavaScript. Une fois que j’ai ajouté cette instruction, l’erreur a cessé de se produire. Il est sûr que cela peut avoir un rapport avec la façon dont le JavaScript est interprété par le navigateur, mais je n’ai aucune idée de l’effet que cela peut avoir.

Alors, qu’est-ce que « use strict » Quels sont les avantages et désavantage de son utilisation ?

Le mode strict est une nouvelle fonctionnalité de l’ECMAScript 5 qui vous permet de placer un programme, ou une fonction, dans un contexte d’exploitation « strict ». Ce contexte strict empêche l’exécution de certaines actions et génère davantage d’exceptions.

Le mode strict est avantageux à plusieurs niveaux :

  • Il attrape certaines erreurs de codage courantes, en lançant des exceptions.
  • Il empêche, ou lance des erreurs, lorsque des actions relativement « dangereuses » sont effectuées (comme l’accès à l’objet global).
  • Il désactive les fonctionnalités qui sont confuses ou mal conçues.

Notez également que vous pouvez appliquer le « mode strict » à l’ensemble du fichier… Ou vous pouvez l’utiliser uniquement pour une fonction spécifique :

// Code non strict...

(function(){
  "use strict";

  // Définissez votre bibliothèque de manière stricte...
})();

// Code non strict...

Ce qui pourrait être utile si vous devez mélanger un ancien et un nouveau code :wink:

Il s’agit d’une nouvelle fonctionnalité de l’ECMAScript 5.

Il s’agit simplement d’une chaîne que vous mettez dans vos fichiers JavaScript (soit en tête de votre fichier, soit dans une fonction) et qui se présente comme suit :

"use strict";

Le fait de le mettre dans votre code ne devrait pas poser de problèmes avec les navigateurs actuels, car il s’agit simplement d’une chaîne. Il peut causer des problèmes avec votre code plus tard si votre code viole le pragmatique. Par exemple, si vous avez actuellement foo = "bar" sans définir foo en premier, votre code commencera à échouer… ce qui est une bonne chose à mon avis.

L’instruction "use strict" ; demande au navigateur d’utiliser le mode Strict, qui est un ensemble de fonctionnalités réduites et plus sûres de JavaScript.

  • Désactive les variables globales.
  • Interdit l’utilisation du mot-clé « with »
  • Les noms des paramètres de la fonction doivent être uniques
  • eval en mode strict n’introduit pas de nouvelles variables
  • arguments.callee n’est pas supporté

Le mode strict introduit plusieurs changements dans la sémantique normale de JavaScript :

  • élimine certaines erreurs JavaScript silencieuses en les transformant en erreurs de type « throw ».

  • corrige les erreurs qui rendent difficile l’optimisation des moteurs JavaScript.

  • empêche l’utilisation de certaines syntaxes qui pourront être définies dans les futures versions d’ECMAScript.