WebAssembly.fr

ECMAScript 6, pour les applications Web: Tests.

Nouvelles fonctionnalités de JavaScript et test d'implémentation dans les navigateurs.

Cette page comprend aussi les additions à JavaScript antérieures à Harmony, que Firefox a implémentées, mais pas d'autres navigateurs.

Pour que les générateurs, les assignements groupés, let, fonctionnent, il faut spécifier la version de JavaScript:

<script type="application/javascript;version=1.7">
Itérateur (1.7)

Objet permettant de traiter en séquence les éléments qu'il contient.

Iterator: Image

var lang = { 0 : 'JavaScript', 1: 'php' };
var it = Iterator(lang);
var n = it.next();
document.write(n);

Générateur (1.7) Cela apporte une forme de concurrence à JavaScript. Chaque fois qu'on appelle la fonction, on va au yield suivant et on retourne la valeur associée, même si yield se trouve dans une boucle. Dans l'exemple ci-dessous elle affiche successivement un, deux, trois, 1, 2 et false puisque i doit être inférieur à trois.

Générateur et mot réservé yield: Image

function simpleGenerator(){
  yield "un";
  yield "deux";
  yield "trois";
  for (var i = 0; i < 3; i++)
    yield i;
}
var g = simpleGenerator();
document.write(g.next());  // affiche 'un'
Scoping (1.7)

Let est une alternative à var qui restreindre la visibilité au corps d'un bloc, et non d'une fonction.

Let : Image

var testlet = 10;
if(true) {
  let testlet = 20;
  if(testlet == 20)
    alert(20);
}
alert(testlet); // affiche 10
Assignement destructurant (1.7)

Cela permet de faire des assignements groupés. Y compris avec le retour d'une fonction.

[a , b ] = [x , y]; Image

var ada = 1;
var adb = 2;
var adx = 3;
var ady = 4;
[ada , adb] =  [adx, ady];  // ada vaut 3 et adb 4

Set (Harmony)

Ce nouveau type de tableau ne peut être confondu avec un tableau associatif. Les clés numérique sont toujours des clés et non des indices.
Dans l'exemple, 1 fait partie de la liste.

Set/add()/has()/size : Image

var testset = new Set();
testset.add(1);
testset.add("hello");
document.write(testset.has(1));  // retourne true.

Map (Harmony)

Ce nouveau type de tableau associatif (nom avec une majuscule au contraire de la méthode) dispose d'un attribut de taille au contraire des tableaux classiques qui sont en fait des objets dynamiques. Les méthodes set et get modifient son contenu.

Map/set()/get()/size : Image

var testmap = new Map();
testmap.set("a", "un");
testmap.set("b", "deux");
document.write(testmap.get("b")); // affiche deux.

String.trim() (1.8.1)

Nouvelle méthode de String qui élimine les espaces superflus. Supporté par IE 9.

String.trim() : Image

var tests = " Hello ";
document.write(tests.trim()); // affiche "Hello".

Class (Harmony)

De vraies classes avec héritage.

Class : Image

var tclass = class {
  constructor() { }
  tmet() {
    return "ok"; 
  }
}
document.write(tclass.tmet()); // affiche ok.

Promise (Harmony)

Un objet pour attendre la fin et le résultat d'un processus avant de continuer un traitement, en mode asynchrone.

Promise : Image

var tprom = new Promise(function(a, b) {
  a(true);
});

function success(res) { 
	document.getElementById("tpromid").innerHTML="Succès";
}

tprom.then(promtrue, function(res) {});

Voir aussi...