Skip to content

qcm-9: Composants

Compare
Choose a tag to compare
@adrienjoly adrienjoly released this 27 Feb 14:43
· 644 commits to master since this release

Qu'est-ce qu'un composant ?

  • c'est le nom qu'on donne à tout programme JavaScript
  • c'est le nom qu'on donne à tout div d'une page HTML
  • c'est un module qui a été conçu pour être intégré par d'autres développeurs
  • c'est une page web de documentation

Nous avons vu en cours que tout composant devait être conçu de manière à pouvoir être intégré plusieurs fois sur une même page.

Parmi ces stratégies de conception, laquelle ne permet PAS l'intégration multiple d'un composant:

  • Faire en sorte que le composant s'applique sur des éléments groupés
  • Demander à l'intégrateur d'appeler une fonction pour chaque intégration
  • Demander à l'intégrateur de modifier le code source du composant

Soit le fichier HTML suivant:

<ul>
  <li data-number="1">premier</li>
  <li data-number="2">deuxième</li>
</ul>

Comment récupérer la valeur de l'attribut data-number du deuxième élément <li> ?

  • document.getElementById('2').data-number
  • document.getElementsByTagName('li')[1].data-number
  • document.getElementsByTagName('li').getAttribute('data-number')[1]
  • document.getElementsByTagName('li')[1].getAttribute('data-number')

var lien = document.getElementById('mon-lien-a');

Comment changer le titre du lien <a> (tel qu'il sera affiché à l'écran) référencé par la variable lien ?

  • lien.title = 'nouveau titre';

  • lien.innerHTML = 'nouveau titre';

  • lien.href = 'nouveau titre';

  • lien.setAttribute('title', 'nouveau titre');


Soit le code JS suivant:

// supposons que boutons référence un ensemble de boutons
for (var i = 0; i < boutons.length; i++) {
  boutons[i].onclick = function() {
    alert('vous avez cliqué sur le bouton nº' + i);
  }
}

Que se passera-t-il quand on cliquera sur chaque bouton ?

  • on verra l'alerte: "vous avez cliqué sur le bouton nºi"
  • le numéro du bouton cliqué apparaitra dans un alert
  • un numéro de bouton incorrect apparaitra dans un alert
  • il ne se passera rien

Expliquez la raison du comportement observé à la question ci-dessus.

  • il y a une erreur de syntaxe dans le code
  • au moment du clic, la variable i vaudra boutons.length
  • au moment du clic, la variable i vaudra 0
  • la variable i n'est pas accessible dans le contexte de la fonction onclick

Quelle est la meilleure manière de résoudre le problème de la question ci-dessus ?

  • il faut ralentir les itérations de la boucle
  • il faut écrire une fonction onclick par bouton
  • il faut passer la valeur de i en paramètre de notre fonction onclick
  • il faut passer la valeur de i en paramètre d'une autre fonction, à chaque itération de la boucle