Map en action

const allowedKeys = new Map([
        [37, 'left'],
        [38, 'up'],
        [39, 'right'],
        [40, 'down']
]);
document.addEventListener('keydown', function(e) {
 let arrow = allowedKeys.get(e.keyCode);
    if (arrow) document.querySelector("#Key").innerHTML +=`<br/>${arrow}`;
    e.preventDefault();
    return false;
});


JS Bin on jsbin.com

simuler une boucle avec un itérateur

let a = ["d","e","n","i","s"];

for (let val, ret, it = a[Symbol.iterator]();
(ret = it.next()) && !ret.done;
) {
val = ret.value;
console.log( val );
}

"d" "e" "n" "i" "s"

l'opérateur ...

le comportement de l'opérateur ... dépend de comment et où il est utilisé.

spread
gathers
function fx(x,y,z) {
console.log( x, y, z );
}
fx( ...[1,2,3] );

function fx(x, y, ...z) {
console.log( x, y, z );
}
Fx( 1, 2, 3, 4, 5 );

portee

regardez la vidéo et tenter d'évaluer la valeur d'une expression.



Les deux codes suivants sont équivalents

ES2015
Before ES2015
let x = "G";

function f() {
  console.log(x);
}

{
  let x = "B";
  console.log(`x = ${x}`);
  f();
}
"use strict";

var x = "G";

function f() {
  console.log(x);
}

{
  var _x = "B";
  console.log("x = " + _x);
  f();
}


A la node.js

  
let map = function(input,callback){
let results = [],
handleIterationResult = function(error,result){
if (error) {callback(error); return;}
results.push(result);
if (results.length === input.length){
callback(null,results);
}
};
input.forEach(function(num){
sum(num,handleIterationResult);
});
};
let sum = function (num, callback){
callback(null, num + num);
};

map([2,4,1], function (error,result){
if (error) {console.error(error);return; };
console.log(result);
});

ES6


exemple de décomposition

Allez dans votre console et tapez :
const doc = document.documentElement;
const { clientWidth, clientHeight } = doc;
console.log( `la largeur de la fenêtre est : ${clientWidth} ` );