Résultats du Quiz JavaScript / DOM difficile

  1. Quel est l'équivalent de pouet.coin ?

    • pouet[coin]
    • pouet["coin"]
    • pouet.getCoin()
    • Aucune des solutions précédentes.

    Les membres d'un objet sont définis en associant des labels et des valeurs. On accède aux valeurs à l'aide de deux syntaxes : pouet.coin et pouet["coin"].
    coin est une propriété de l'objet pouet mais la seconde syntaxe permet d'utiliser un label "dynamique" sous forme d'un passage de valeur (pouet.for est invalide, pouet["for"] ne l'est pas).
    La méconnaissance de cette syntaxe est souvent la source d'une utilisation inutile d'eval..

    Pour en savoir plus : " Les objets ".

  2. Laquelle de ces expressions est évaluée à false ?

    • "Infinity" == Infinity
    • NaN == NaN
    • "0xa" == 10
    • {"valueOf": function() {return 2;}} == 2

    Aussi surprenant que cela puisse paraître, NaN n'est égal à rien en JavaScript, pas même à lui-même. Il faut utiliser la fonction isNaN pour éviter ce problème.

    Pour en savoir plus : "NaN".

  3. Quelle est la méthode spécifiée dans le DOM-2 pour l'ajout des gestionnaires d'événements ?

    • addEventListener
    • attachEvent
    • attachEventListener
    • listen

    attachEvent est l'équivalent propriétaire de cette méthode pour IE.

  4. Quel est le résultat de parseInt("010",8) ?

    • 1
    • 2
    • 8
    • 10

    "010" est considéré avec JavaScript version ES3 comme étant écrit en base 8 car commençant par un " 0 ". Ce n'est plus vrai automatiquement avec ES5 c'est pourquoi on force l'utilisation de la base 10 avec le 2e paramètre.

  5. window.i = 0; var i = 2; alert(window.i); : que va afficher ce code ?

    • 0
    • 2
    • Game over
    • undefined

    Les variables globales sont en fait des propriétés de l'objet global (window).

    Pour en savoir plus : " Variables globales ".

  6. Lequel de ces types d’événements "bouillonne" (se propage) ?

    • blur
    • focus
    • load
    • select

    Ces quatre types d’événements font partie de ceux hérités du DOM-0. Il est à noter que, bien que blur et focus ne " bouillonnent " pas, DOM-2 a introduit leurs équivalents respectifs DOMFocusOut et DOMFocusIn qui le font mais qui ne sont pour l’instant pas implémentés par tous les navigateurs.

  7. Quelle chaîne de caractères ne correspond pas à l'expression régulière /\ba/ ?

    • "abcd"
    • "_a"
    • "-a"
    • "d c b a"

    \b correspond à une extrémité de mot, c'est-à-dire une extrémité de la chaîne de caractères, ou tout caractère n'appartenant pas à l'ensemble [a-zA-Z0-9_].

  8. Lorsqu'on presse brièvement un caractère du clavier, quelle séquence d'événements est générée ?

    • keypress / keydown / keyup
    • keyup / keydown / keypress
    • keydown / keypress / keyup
    • keydown / keyup / keypress

    La réponse est : keydown / keypress / keyup. Si on maintient la touche, keydown et keypress se répètent jusqu'au relâchement de la touche.

  9. Si on presse brièvement une touche autre qu'un caractère, est-ce la même séquence d'événements ?

    • non, la séquence est alors keydown / keyup
    • oui, c'est identique
    • non, la séquence est alors keypress / keydown / keyup
    • non, seul l'événement keypress est généré

    La réponse est : non, la séquence est alors keydown / keyup. Si on maintient la touche, keydown se répète jusqu'au relâchement de la touche.

  10. Depuis quand sont disponibles les arrow functions ?

    • JavaScript 1.7
    • ECMAScript 6
    • ECMAScript 7
    • ECMAScript 2018

Score 0/10

Le verdict de Bernard Minet

As-tu bien compris le principe de cocher les cases ?