niveau avancé

live list ?

On pourra lire que getElementsBytagName and Co retourne une liste vivante ?

not live ?

QuerySeletor au contraire rend une liste "not alve" ?
Exemple

Contenu texte d'un nœud

JS Bin on jsbin.com

itérations sur les nodeList


Propagation d'événements

utilisation du débogeur

Bien structurer son code !

function trackKeys() {

  var arrowCodes = {37: "left", 38: "up", 39: "right", 40:"down"};
  var pressed = Object.create(null);

  function handler(event) {
    if (arrowCodes.hasOwnProperty(event.keyCode)) {
      var down = event.type == "keydown";
      pressed[arrowCodes[event.keyCode]] = down;
      event.preventDefault();
    }
  }
  addEventListener("keydown", handler);
  addEventListener("keyup", handler);
  return pressed;
}

framFunc est la fonction exécutée à chaque step !

function runAnimation(frameFunc) {
  var lastTime = null;
  function frame(time) {
    if (lastTime != null) {
      var timeStep = Math.min(time - lastTime, 100) / 1000;
      frameFunc(timeStep) // 
    }
    lastTime = time;
    requestAnimationFrame(frame);
  }
  requestAnimationFrame(frame);
}

test : utilisez les flèches ! 

Ecrire une application non MVC code