Développeur FullStack & Devops

Notes et mémos techniques

Javascript ES6

Const & Let

ES6 introduit la notion de "variables immuables", ce sont des variables qui ne peuvent subir d'affectation qu'1 seule fois, à leur création. Par contre on peut bien sur affecter un objet à une constante, et cela n’empêche pas l'objet d’être modifié.

const toto = {}     // undefined
toto                // Object { }
toto.tata = 1       // 1 car on affecte une nouvelle propriété 'tata' à l'objet sur lequel pointe toto
toto                // Object { tata: 1 }
toto = 2            // TypeError: invalid assignment to const `toto`
const toto;         // SyntaxError: missing = in const declaration[En savoir plus] debugger eval code:1:6
const toto = 'x';   // SyntaxError: redeclaration of const toto

Le scope des variables déclarés const  et let  est le bloc (contrairement aux var dont le scope est la fonction), et ne subissent pas de "hoisting"

Paramètres Rest

L'opérateur Rest (les ...  qui précèdent un argument dans la signature d'une fonction) interviennent dans la signature des fonctions.

C'est un nouveau "type" de paramètre qui prend tous les arguments restant d'un appel et les mets à disposition dans le scope de la fonction à travers une variable de type tableau. Dans l'exemple suivant "z" est un parmètre rest :

const maFonctionToto = (x, y, ...z) => {
  console.log(x, y, z.length);
};
// on défini une fonction, avec le paramètre rest 'z'

maFonctionToto(
  111,
  "tutu",
  "youhoo",
  10,
  { login: "behrouze" },
  5,
  "jeNeSuisQu1Texte"
);
// nous retourne: 111 tutu 5

Opérateur Spread

Spread (= déployer, disperser in english) permet d'éclater un objet ou un tableau, ce qui peut etre utile pour un appel de fonction ou pour recréer un autre tableau. Une variable spread peut également être affectée:

[a, b, ...objetIterable] = [1, 2, 3, 4, 5]; // la console nous indique bien Array(5) [ 1, 2, 3, 4, 5 ]
b; // 2
objetIterable; // Array(3) [ 3, 4, 5 ]

Template Strings

Les templates strings fournissent du sucre syntaxique pour nous éviter de faire des concaténations de chaines et variables à l'ancienne (avec des + ). Il suffit simplement d'utiliser des ` à la place de " pour délimiter la chaine de caractères, et d'utiliser ${xxx} pour substituer les variables (ici xxx) par leur chaine de caractère résultante :

const message = "Aujourd'hui (" + today + ") il fait " + temperature + "°C";
const message = `Aujourd'hui (${today}) il fait ${temperature} °C`;

Liens

javascript
es6
programmation
rédigé le 31/05/18, mis à jour le 24/01/22 par Behrouze
A proposCheat SheetsOutilsVidéos