Rappel des changement dans ECMAScript 2015 (ES6)

Depuis déjà 5 ans bientôt, la version 6 de la spécification ECMAScript est sortie, son lot de changements avec.

Disclaimer : cet article se réfère à celui de Grafikart et à pour but de servir de pense bête

Petit rappel

ECMAScript correspond aux spécifications qui servent à décrire les standard de certains languages Script dont Javascrit fait partie (mais aussi Actionscript, etc…).

Bon, trève de plaisanterie, voici les nouveautés principales de cette nouvelle spécification.

Let et Const

Pour définir une variable avec une portée limitée à son bloc, on utilisera let plutot que var.

if (false) {
    var a1 = 1; 
    let a2  = 2; 
}
console.log(a1) // undefined
console.log(a2) // erreur: a2 is not defined

Avec const on peut désormais définir une constante (en lecture seule)


const EAU = "h2o";

EAU = "o2" // Une érreur est levée car EAU est une constante.

Fonctions fléchées

Elles permetent d’écrire des fonction sans le mot clef function.

Personellement je ne trouve pas ça beaucoup plus lisible, mais carément plus efficace !!

On n’utilise donc plus le mot clef function mais des parenthèse () pour les paramètres, une flèche =>, et des accollades {} pour les instructions.


let maFonction = param => return param; // avec un seul parametre et une seule instruction

let miFonction = (param1 , param2) => { // avec plusieurs paramêtres et plusiseurs instructions
    param2 = param1;
    return param2;
}

console.log(miFunction("toto","tata"));

Les Classes

Auparavent, la syntaxe des classes en JavaScript était bien différente d’autres languages du type PHP,Java,etc… et pas forcement évidente à écrire.

ES6 apporte un “sucre syntaxique” qui facile grandement l’écriture de celles-ci:


class Toto extends Tata {
  constructor (props) {
    super(props)
    this.state = { loginState: 'logged-out' }
  }

  method () {
    // …
  }
}

  • On définit le corps de la classe avec le mot clef class
  • Une classe étend ses propriétés avec le mot clef extends
  • Le mot clef constructor définit le constructeur, super(...) permet d’heriter des propriétes du parent; ce qui est d’ailleur obligatoire si on utilise l’extends !
Article écrit le December 28, 2019