Articles

JavaScript « use strict »

'use strict'; indique que le code JavaScript doit être exécuté en « mode strict ». Cela permet de faciliter l’écriture d’un bon code JavaScript sécurisé. Par exemple,

myVariable = 9;

Ici, maVariable est créée sans déclaration. Cela fonctionne comme une variable globale en JavaScript. Cependant, si vous l’utilisez en mode strict, le programme lancera une erreur. Par exemple,

'use strict';// ErrormyVariable = 9;

Le code ci-dessus lance une erreur parce que maVariable n’est pas déclarée. En mode strict, vous ne pouvez pas utiliser les variables sans les déclarer.

Pour indiquer que ce programme est en mode strict, nous avons utilisé

'use strict';

en haut du programme.

Vous pouvez déclarer le mode strict en ajoutant 'use strict'; ou "use strict"; au début d’un programme.

Lorsque vous déclarez le mode strict au début d’un programme, il aura une portée globale et tout le code du programme s’exécutera en mode strict.

Mode strict dans la variable

En mode strict, l’utilisation d’une variable sans la déclarer jette une erreur.

Note : Vous devez déclarer le mode strict au début du programme. Si vous déclarez le mode strict en dessous de certains codes, cela ne fonctionnera pas.

Par exemple,

console.log("some code");// 'use strict' is ignored// must be at the top"use strict";x = 21; // does not throw an error

Mode strict dans une fonction

Vous pouvez également utiliser le mode strict à l’intérieur d’une fonction. Par exemple,

myVariable = 9;console.log(myVariable); // 9function hello() { // applicable only for this function 'use strict'; string = 'hello'; // throws an error}hello();

Si vous utilisez 'use strict'; à l’intérieur d’une fonction, le code à l’intérieur de la fonction sera en mode strict.

Dans le programme ci-dessus, 'use strict'; est utilisé à l’intérieur de la fonction hello(). Par conséquent, le mode strict n’est applicable qu’à l’intérieur de la fonction.

Comme vous pouvez le voir, au début du programme, myVariable est utilisé sans être déclaré.

Si vous déclarez 'use strict'; au début du programme, vous ne pouvez pas utiliser une variable sans la déclarer à l’intérieur de la fonction également. Par exemple,

// applicable to whole program'use strict';function hello() { string = 'hello'; // throws an error}hello();

Note : Le mode strict ne s’applique pas aux déclarations de bloc avec {} accolades.

Ce qui n’est pas autorisé en mode strict

1. Les variables non déclarées ne sont pas autorisées.

'use strict';a = 'hello'; // throws an error

2. Les objets non déclarés ne sont pas autorisés.

'use strict';person = {name: 'Carla', age: 25}; // throws an error

3. La suppression d’un objet n’est pas autorisée.

'use strict';let person = {name: 'Carla'};delete person; // throws an error

4. La duplication du nom d’un paramètre n’est pas autorisée.

"use strict";function hello(p1, p1) { console.log('hello')}; // throws an errorhello();

5. L’affectation à une propriété non inscriptible n’est pas autorisée.

'use strict';let obj1 = {};Object.defineProperty(obj1, 'x', { value: 42, writable: false });// assignment to a non-writable propertyobj1.x = 9; // throws an error

6. L’affectation à une propriété getter-only n’est pas autorisée.

'use strict';let obj2 = { get x() { return 17; } };// assignment to a getter-only propertyobj2.x = 5; // throws an error

7. L’affectation à une nouvelle propriété sur un objet non extensible n’est pas autorisée.

'use strict';let obj = {};Object.preventExtensions(obj);// Assignment to a new property on a non-extensible objectobj.newValue = 'new value'; // throws an error

8. La syntaxe octale n’est pas autorisée.

'use strict';let a = 010; // throws an error

9. Les noms de variables arguments et eval ne sont pas autorisés.

'use strict';let arguments = 'hello'; // throws an errorlet eval = 44;

10. Vous ne pouvez pas non plus utiliser ces mots-clés réservés en mode strict.

implements interfaceletpackageprivateprotectedpublicstaticyield

Avantages du mode strict

L’utilisation du mode strict :

  • aide à écrire un code plus propre
  • change les erreurs silencieuses (mauvaise syntaxe) précédemment acceptées en erreurs réelles et lance un message d’erreur
  • facilite l’écriture de JavaScript « sécurisé »

.

Laisser un commentaire

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