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:

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:

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 :

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];

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 :

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 :

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() :

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

Class (Harmony)

De vraies classes avec héritage.

Class :

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 :

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...

© 2013-2015 Xul.fr