Vous êtes sur la page 1sur 2

Présentation et définition du mode strict

un mode qui va contenir une sémantique légèrement différente et plus stricte par rapport au
JavaScript « classique ».
Le mode strict va notamment lever plus d’erreurs que le JavaScript classique. En effet, le
JavaScript classique laisse passer de nombreuses erreurs de syntaxes sans lever d’erreurs de
manière explicite (on parle d’erreurs silencieuses).
De plus, le mode strict interdit l’usage de certains mots que le JavaScript pourrait utiliser
comme mots clefs dans ses versions futures.
Le mode strict permet finalement une exécution plus rapide du code en forçant une meilleure
implémentation de certaines méthodes et propriétés connues pour avoir des comportements
parfois imprévisibles.

Activer et utiliser le mode strict


Pour activer le mode strict, nous allons utiliser la syntaxe use strict. On va pouvoir choisir
d’activer le mode strict pour un script entier ou seulement pour certaines fonctions choisies.
Attention : si l’instruction use strict n’est pas la première dans le script ou dans une
fonction, alors le mode strict ne fonctionnera pas.

Les différences entre le mode strict et le JavaScript classique


en détail
* Déclarer une variable sans let ou var

* Affecter une valeur à une variable ou une propriété non accessible en écriture

* Tenter de supprimer une propriété (comme la propriété prototype)non supprimable

* Déclarer plusieurs paramètres de même nom dans une fonction

* Utiliser des notations octales ( précéder un nombre par un 0)

* Définir des propriétés sur des valeurs primitives

* Utiliser with et eval()


with car son utilisation pose de nombreux problèmes.

eval() n’est pas autorisée à créer des variables dépassant sa propre portée :On déconseille
généralement l’utilisation et à plus fort titre pour des développeurs non expérimentés.
* Utiliser this et arguments
En JavaScript classique, this est toujours un objet pour n’importe quelle fonction ou méthode. En
effet, si la valeur fournie pour this est une valeur primitive, alors elle sera convertie en objet. Si
this vaut null ou undefined, alors ce sera l’objet global qui sera passé à la fonction.

Cette conversion automatique, en plus d’impacter négativement les performances peut


exposer l’objet global et cela est non souhaité et peut mener à diverses failles de sécurité dans
le code
La valeur de this en mode strict n’est donc pas transformée en objet et si elle n’est pas
définie la valeur passée sera undefined.

La propriété arguments, quant-à-elle, ne permet pas d’accéder aux variables passées à la


fonction lors de son appel en mode strict. Cela permet également de réduire les failles de
sécurité.
* les noms réservés

Vous aimerez peut-être aussi