Skip to content

Releases: adrienjoly/js-test

qcm-10: AJAX GET

27 Mar 11:34
Compare
Choose a tag to compare

Pour effectuer une requête AJAX GET, et afficher la réponse du serveur dans un alert(), il faut instancier la classe XMLHttpRequest puis...

  • ... appeler 2 méthodes, et définir 1 fonction
  • ... appeler 1 méthode, et définir 2 fonctions
  • ... appeler 3 méthodes
  • ... définir 3 fonctions

J'ai écrit le code permettant d'envoyer une requête HTTP GET, mais rien ne se passe, et rien n'apparait dans la console.

Cela pourrait être dû à:

  • une erreur de syntaxe
  • une URL erronée
  • l'oubli de l'appel à send()
  • l'oubli de l'usage de JSON.parse()

Quel est le format le plus couramment utilisé de nos jours pour échanger des informations en AJAX avec une API ?

  • HTML
  • XML
  • JSON
  • texte brut

var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'https://jsonplaceholder.typicode.com/users/1');
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4) {
    var reponse = JSON.parse(xhr.responseText);
    alert(/* A SAISIR */);
  }
};
xhr.send();

Si on veut afficher la propriété email de l'objet contenu dans la réponse à notre requête, par quoi faut-il replacer /* A SAISIR */ ?

  • JSON.parse(xhr.responseText.email)
  • xhr.responseText.email
  • reponse.email
  • responseText['email']

v2.5.1: Fixes

06 Mar 13:31
Compare
Choose a tag to compare

== v2.5.1 Fixes

  • Feature: added eval-firebase-export npm script
  • Feature: display max score per question on "suivi" dashboard
  • Bug fix: display error messages if config will make suivi/dashboard fail

qcm-9: Composants

27 Feb 14:43
Compare
Choose a tag to compare

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

qcm-8: Manipulation styles / classes CSS

15 Feb 14:16
Compare
Choose a tag to compare

Soit le fichier HTML suivant:

<ul>
  <li class="displayed" id="first-item">premier</li>
  <li class="hidden">deuxième</li>
  <li class="hidden">troisième</li>
</ul>

Quelle est la fonction du DOM la plus directe pour:

  1. accéder au premier élément <li> depuis JavaScript ?
  • getElementById()
  • getElementByClassName()
  • getElementsByClassName()
  • getElementsByTagName()

  1. accéder à tous les éléments <li> portant la classe "hidden" ?
  • getElementById()
  • getElementByClassName()
  • getElementsByClassName()
  • getElementsByTagName()

  1. accéder à tous les éléments <li> ?
  • getElementById()
  • getElementByClassName()
  • getElementsByClassName()
  • getElementsByTagName()

Comment retirer la classe "hidden" des deux derniers éléments <li> ?

  • document.getElementsByClassName('hidden').className = '';
  • document.getElementsByClassName('hidden').setAttribute('class', '');
  • document.getElementsByClassName('hidden').classList.remove('hidden');
  • (il faut utiliser une boucle)

Imaginez que vous disposez de la page HTML suivante:

<bouton id="mon-bouton">cliquez ici !</bouton>

Et de la règle CSS suivante:

.hidden {
  display: none;
}

Écrivez le code JavaScript nécéssaire pour que la classe hidden soit ajoutée au bouton une fois que l'utilisateur aura cliqué dessus, à l'aide de la propriété classList.

qcm-7: DOM

30 Jan 12:57
Compare
Choose a tag to compare

Quel est le nom de l'attribut à utiliser pour donner le nom du fichier .js à charger dans une page HTML:

  • href
  • src
  • scr
  • type

Si je crée une fichier .js qui ne contient que la ligne alert('bonjour'); et que j'intègre ce fichier à une page HTML, que se passera-t-il ?

  • rien
  • l'alert ne s'affichera que si on copie-colle le code dans la console
  • l'alert s'affichera quand l'utilisateur cliquera sur un bouton
  • l'alert s'affichera à chaque (re)chargement de la page

Soit la page HTML suivante:

<body>
  <p id="premier-paragraphe">Bonjour</p>
  <p id="deuxieme-paragraphe">le monde</p>
</body>

Quelle instruction JavaScript dois-je exécuter pour accéder au deuxième paragraphe ?

  • document.paragraphes[1];
  • document.getElementById(1);
  • document.getElementById('deuxieme-paragraphe');
  • document.deuxieme-paragraphe;

Soit la page HTML suivante:

<body>
  <form>
    <input id="nom" value="Michel" />
    <input id="prenom" value="Jean" />
  </form>
</body>

Quelle instruction JavaScript dois-je exécuter pour modifier la valeur du champ <input> dont l'identifiant est prenom ?

  • document.getElementById('prenom').value = 'nouveau prénom';
  • document.getElementById('prenom', 'nouveau prénom');
  • document.prenom = 'nouveau prénom';
  • document.input = ''

Imaginez que vous disposez de la page HTML suivante:

<bouton id="pouet">cliquez ici !</bouton>

Écrivez le code JavaScript nécéssaire pour que le message pouet ! s'affiche dans un alert à chaque fois que l'utilisateur cliquera sur le bouton:

qcm-6: objects

25 Jan 17:45
Compare
Choose a tag to compare

Laquelle de ces instructions constitue un objet JavaScript valide:

  • [ prop1: 3, prop2: 4 ]
  • { prop1: 3, prop2: 4 }
  • { 2, true, 'bonjour' }
  • { 'a': 1; 'b': 2 }

Comment récupérer la valeur de la propriété nom d'un objet affecté à une variable personne ?

  • personne.get('nom');
  • personne.[nom];
  • personne[nom];
  • personne.nom;

Toujours dans notre objet personne, comment récupérer la valeur d'une propriété dont la clé est stockée dans la variable laCle ?

  • personne.get(laCle);
  • personne.laCle;
  • personne[laCle];
  • personne['laCle'];

var compteFacebook = {
  groupes: {
    maitresJedi: {},
    lolcats: {
      titre: 'Vive les chats !',
      membres: [ 'Patrick' ],
    },
  },
};

Quelle instruction faut-il saisir pour accéder à la valeur 'Patrick' ?

  • compteFacebook.groupes.lolcats.membres[0]
  • compteFacebook.membres[0]
  • [comptesFacebook][groupes][lolcats][membres][0]
  • ['comptesFacebook']['groupes']['lolcats']['membres'][0]

Définir un objet contenant une propriété texte ayant 'bonjour' comme valeur, et stocker cet objet dans une variable message.

Ajouter l'instruction permettant d'afficher avec alert() la valeur de la propriété texte de l'objet message, en récupérant cette valeur depuis l'objet.

v2.5.0: Multi-instance deployment and evaluation

23 Jan 17:13
Compare
Choose a tag to compare

== v2.5.0 Multi-instance deployment and evaluation

  • Feature: npm run deploy-instances => batch deployment to several herokuapp.com apps
  • Feature: redirectToHttps, publishSolutions and publishEvalTests config flags
  • Feature: email-submit back-end (to hash answers for email delivery)
  • Feature: display student name in header
  • Feature: scores.csv splitted into one part per group
  • Bug fix: auto-eval and realtime-eval now also works on Firefox and Safari
  • Bug fix: Multi-variant exercises now also work using auto-eval in PUBLIC_TEST mode
  • Bug fix: don't display score if null/undefined
  • Bug fix: prevent crash with quizz questions that do not have a solution
  • Refactoring: solutions and tests files are no longer necessary

Successfully tested for an exam of 75 students. (js-partiel-1)

js-revisions-fixed: Exercices auto-évalués / compilation de QCMs et exercices du 1er semestre

16 Jan 10:09
Compare
Choose a tag to compare

Les bases - QCM

Comment ouvrir la console JavaScript dans Google Chrome ?

  • En tapant "console"
  • En appelant le prof
  • En demandant gentiment à Siri
  • En pressant Cmd-Alt-J ou Ctrl-Shift-J

Que retourne typeof quand il est appliqué sur "bonjour" ?

  • "string"
  • string
  • "object"
  • undefined

Types de valeurs en JavaScript. Quel est l'intrus ?

  • string
  • boolean
  • decimal
  • number

Comment créer une variable en JavaScript ?

  • maVariable;
  • var maVariable;
  • x = 0;
  • maVariable = 'bonjour';

Quel est le type de cette variable:

var maVariable = 3.2;
  • string
  • number
  • decimal
  • boolean

Quel est le type de cette variable:

var maVariable = '3.2';
  • string
  • number
  • decimal
  • boolean

Comment afficher la valeur d'une variable appelée maVariable depuis la console ?

  • maVariable;
  • var maVariable;
  • maVariable?
  • show maVariable

Comment changer la valeur d'une variable existante ? (déjà créée)

  • var maVariable = 4;
  • maVariable = 4;
  • maVariable(4);
  • 4 = maVariable;

Si j'ai créé une variable dont la valeur est un nombre, que se passera-t-il si je lui affecte ensuite une chaine de caractères ?

  • erreur, car le type est différent.
  • erreur, car on ne peut pas changer la valeur d'une variable.
  • la valeur de la variable va être remplacée par la chaine de caractères.
  • les deux valeurs vont être concaténées.

En respectant les conventions indiquées en cours, quelle affectation faut-il exécuter pour que J'ai tout compris ! s'affiche à l'écran ?

alert(message);
  • message = "J'ai tout compris !";
  • message = 'J"ai tout compris !';
  • message = 'J'ai tout compris !';
  • message = J'ai tout compris !

Conditions - QCM

Que vaut cette expression de comparaison de valeur ?

3.2 === '3.2'
  • true
  • false
  • undefined
  • c'est une affectation

Quelle section va être exécutée, si on exécute le code suivant ?

var nb = 2;
if (nb === 1) {
  // A
} else {
  // B
}
  • A
  • B
  • A et B
  • aucune

Quelle section de va être exécutée, si on exécute le code suivant ?

var nb = 2;
if (nb === 2) {
  // A
} else if (nb > 1) {
  // B
} else {
  // C
}
  • A
  • B
  • A et B
  • A, B et C

À quoi ressemblerait l'arbre de décision correspondant à ce code:

var reponse = prompt('as-tu faim ?')
if (reponse === 'oui') {
  var reponse2 = prompt('aimes-tu les burgers ?');
  if (reponse2 === 'oui') {
    alert('alors je t\'en offre un !');
  } else {
    alert('dommage !');
  }
} else {
  alert('désolé');
}
  • une boîte et deux branches
  • deux boîtes de même niveau
  • une boîte de niveau 1, et une boîte de niveau 2
  • une boîte et trois branches

Pourquoi faut-il éviter d'utiliser les opérateurs == et != ?

  • car il vaut mieux utiliser une affectation =
  • car ils sont trop stricts
  • car ils sont trop laxistes
  • var === et !== sont plus lisibles

Conditions - Code

Implémenter une condition qui affecte 'egal' à une variable resultat seulement si une autre variable nombre vaut strictement 4. Indenter correctement.


Implémenter un chat-bot à partir de l'arbre de décision suivant:

arbre de décision

Comme vu et pratiqué en cours:

  • Les questions posées par l'ordinateur sont représentées par des rectangles, et sont à implémenter à l'aide de la fonction prompt().
  • Les réponses comprises par l'ordinateur sont écrites à côté de chaque branche, et sont à implémenter à l'aide de conditions.
  • Les messages à afficher par l'ordinateur sont représentés par des cercles, et sont à implémenter à l'aide de la fonction alert().

Vous serez noté(e) sur:

  • le respect à la lettre du texte des questions et des réponses (espaces, accents, et majuscules/minuscules compris).
  • le respect des règles d'indentation et autres conventions vues en cours. (ex: 2 espaces par niveau d'indentation)
  • le bon fonctionnement de votre code, sans erreurs, depuis la console JavaScript de Google Chrome, pour chacun des cas illustrés dans l'arbre de décision.

Algo / Boucles - QCM

Combien de fois les instructions vont-elles être exécutées ?

for ( var i = 0; i < 4; i++ ) {
  // instructions
}
  • 0 fois
  • 1 fois
  • 3 fois
  • 4 fois

Combien de fois les instructions vont-elles être exécutées ?

for ( var i = 3; i >= 1; i-- ) {
  // instructions
}
  • 0 fois
  • 1 fois
  • 3 fois
  • 4 fois

Algo / Boucles - Code

Implémenter un programme de moins de 4 lignes qui affiche 50 fois 'Bonjour!' dans la console. Respecter les conventions et règles d'indentation vues en cours.

Fonctions - QCM

function maFonction(param) {
  return param + 2;
}

Ceci est:

  • un appel de fonction
  • une définition de fonction
  • une affectation de fonction
  • une fonction qui ne fonctionne pas

maFonction(4);

Ceci est:

  • un appel de fonction
  • une définition de fonction
  • une affectation de fonction
  • une fonction qui ne fonctionne pas

// cette fonction concatène un zéro à la fin de la valeur passée en paramètre
function maFonction(param) {
  return param + '0';
}

Comment savoir si cette fonction fonctionne bien ? (c.a.d. sans bug)

  • il suffit de la copier-coller dans la console
  • il faut taper maFonction dans la console
  • vérifier que le test passe: maFonction(1) === '10';
  • vérifier que maFonction(1) renvoie bien true

Supposons que nous avons défini une fonction doubler() qui retourne le double du nombre passé en paramètre, lors de son appel.

Que se passe-t-il si on exécute l'instruction suivante:

var maVariable = doubler(3);
  • le résultat va être affecté à maVariable
  • le résultat va s'afficher dans la console
  • maVariable contient la définition de la fonction
  • maVariable contient l'appel de la fonction

Fonctions - Code

Définir une fonction soustraire qui retourne le résultat de la soustraction a - b, a et b étant des paramètres de cette fonction.

Respecter les conventions et règles d'indentation vues en cours.


Définir une fonction somme qui retourne la somme des trois nombres passés en paramètres.

Exemple d'appel: somme(1, 3, -2); doit retourner 2.


Définir une fonction repeter qui affiche n fois 'Bonjour!' dans la console, puis qui retourne n, n étant un paramètre de cette fonction.

Respecter les conventions et règles d'indentation vues en cours.


Définir une fonction sommeIntervalle qui retourne la somme de tous les nombres entiers compris entre les nombres premier et dernier (compris) passés en paramètres.

Exemple d'appel: sommeIntervalle(2, 5); doit retourner 14 (résultat de 2 + 3 + 4 + 5).

Tableaux - Code

Créez une variable nombres de type tableau et contenant les nombres 1, 2 et 3.


Vous disposez d'une variable fruits contenant un tableau de chaînes de caractères.

Saisissez le code JavaScript pour créer une variable troisieme et lui affecter la valeur du 3ème élément de ce tableau.


Vous disposez d'une variable fruits contenant un tableau de chaînes de caractères.

Saisissez le code JavaScript permettant de retirer le dernier élément de ce tableau, et d'afficher la valeur de cet élément dans la console.


Définir une fonction tableauContient qui prend deux paramètres:

  • tableau: un tableau de chaînes de caractères
  • chaine: une chaîne de caractères

...et retourne:

  • false si la valeur chaine n'a pas été trouvée dans le tableau tableau,
  • ou le premier indice (à partir de 0) auquel a été trouvé la valeur chaine dans le tableau tableau.

Exemples d'appels:

  • tableauContient(['a', 'b', 'c'], 'b'); doit retourner 1.
  • tableauContient(['a', 'b', 'c'], 'd'); doit retourner false.

v2.4.0: Robustness and adaptivity

05 Jan 09:24
Compare
Choose a tag to compare
  • Change: question numbering is now global: no more id collisions
  • Feature: no longer limited to 1 quizz + 1 code exercises
  • Feature: variants are applied on solutions too, when displayed
  • Feature: custom exercise titles using Markdown (optional)
  • Feature: new auto-evaluation backend: auto-eval (on submit only)
  • Feature: npm test tests the evaluation on provided exercise solutions
  • Feature: _studentCode string can be used for code evaluation tests
  • Bug fix: allow evaluation code on same line of _runStudentCode()
  • Bug fix: better browser support for Firefox and Safari
  • Optimization: disabled Polymer routing, buggy and useless
  • Refactoring: renamed classes and scripts, more self-explanatory

js-revisions: Exercices auto-évalués / compilation de QCMs et exercices du 1er semestre

05 Jan 11:04
Compare
Choose a tag to compare

Les bases - QCM

Comment ouvrir la console JavaScript dans Google Chrome ?

  • En tapant "console"
  • En appelant le prof
  • En demandant gentiment à Siri
  • En pressant Cmd-Alt-J ou Ctrl-Shift-J

Que retourne typeof quand il est appliqué sur "bonjour" ?

  • "string"
  • string
  • "object"
  • undefined

Types de valeurs en JavaScript. Quel est l'intrus ?

  • string
  • boolean
  • decimal
  • number

Comment créer une variable en JavaScript ?

  • maVariable;
  • var maVariable;
  • x = 0;
  • maVariable = 'bonjour';

Quel est le type de cette variable:

var maVariable = 3.2;
  • string
  • number
  • decimal
  • boolean

Quel est le type de cette variable:

var maVariable = '3.2';
  • string
  • number
  • decimal
  • boolean

Comment afficher la valeur d'une variable appelée maVariable depuis la console ?

  • maVariable;
  • var maVariable;
  • maVariable?
  • show maVariable

Comment changer la valeur d'une variable existante ? (déjà créée)

  • var maVariable = 4;
  • maVariable = 4;
  • maVariable(4);
  • 4 = maVariable;

Si j'ai créé une variable dont la valeur est un nombre, que se passera-t-il si je lui affecte ensuite une chaine de caractères ?

  • erreur, car le type est différent.
  • erreur, car on ne peut pas changer la valeur d'une variable.
  • la valeur de la variable va être remplacée par la chaine de caractères.
  • les deux valeurs vont être concaténées.

En respectant les conventions indiquées en cours, quelle affectation faut-il exécuter pour que J'ai tout compris ! s'affiche à l'écran ?

alert(message);
  • message = "J'ai tout compris !";
  • message = 'J"ai tout compris !';
  • message = 'J'ai tout compris !';
  • message = J'ai tout compris !

Conditions - QCM

Que vaut cette expression de comparaison de valeur ?

3.2 === '3.2'
  • true
  • false
  • undefined
  • c'est une affectation

Quelle section va être exécutée, si on exécute le code suivant ?

var nb = 2;
if (nb === 1) {
  // A
} else {
  // B
}
  • A
  • B
  • A et B
  • aucune

Quelle section de va être exécutée, si on exécute le code suivant ?

var nb = 2;
if (nb === 2) {
  // A
} else if (nb > 1) {
  // B
} else {
  // C
}
  • A
  • B
  • A et B
  • A, B et C

À quoi ressemblerait l'arbre de décision correspondant à ce code:

var reponse = prompt('as-tu faim ?')
if (reponse === 'oui') {
  var reponse2 = prompt('aimes-tu les burgers ?');
  if (reponse2 === 'oui') {
    alert('alors je t\'en offre un !');
  } else {
    alert('dommage !');
  }
} else {
  alert('désolé');
}
  • une boîte et deux branches
  • deux boîtes de même niveau
  • une boîte de niveau 1, et une boîte de niveau 2
  • une boîte et trois branches

Pourquoi faut-il éviter d'utiliser les opérateurs == et != ?

  • car il vaut mieux utiliser une affectation =
  • car ils sont trop stricts
  • car ils sont trop laxistes
  • var === et !== sont plus lisibles

Conditions - Code

Implémenter une condition qui affecte 'egal' à une variable resultat seulement si une autre variable nombre vaut strictement 4. Indenter correctement.


Implémenter un chat-bot à partir de l'arbre de décision suivant:

arbre de décision

Comme vu et pratiqué en cours:

  • Les questions posées par l'ordinateur sont représentées par des rectangles, et sont à implémenter à l'aide de la fonction prompt().
  • Les réponses comprises par l'ordinateur sont écrites à côté de chaque branche, et sont à implémenter à l'aide de conditions.
  • Les messages à afficher par l'ordinateur sont représentés par des cercles, et sont à implémenter à l'aide de la fonction alert().

Vous serez noté(e) sur:

  • le respect à la lettre du texte des questions et des réponses (espaces, accents, et majuscules/minuscules compris).
  • le respect des règles d'indentation et autres conventions vues en cours. (ex: 2 espaces par niveau d'indentation)
  • le bon fonctionnement de votre code, sans erreurs, depuis la console JavaScript de Google Chrome, pour chacun des cas illustrés dans l'arbre de décision.

Algo / Boucles - QCM

Combien de fois les instructions vont-elles être exécutées ?

for ( var i = 0; i < 4; i++ ) {
  // instructions
}
  • 0 fois
  • 1 fois
  • 3 fois
  • 4 fois

Combien de fois les instructions vont-elles être exécutées ?

for ( var i = 3; i >= 1; i-- ) {
  // instructions
}
  • 0 fois
  • 1 fois
  • 3 fois
  • 4 fois

Algo / Boucles - Code

Implémenter un programme de moins de 4 lignes qui affiche 50 fois 'Bonjour!' dans la console. Respecter les conventions et règles d'indentation vues en cours.

Fonctions - QCM

function maFonction(param) {
  return param + 2;
}

Ceci est:

  • un appel de fonction
  • une définition de fonction
  • une affectation de fonction
  • une fonction qui ne fonctionne pas

maFonction(4);

Ceci est:

  • un appel de fonction
  • une définition de fonction
  • une affectation de fonction
  • une fonction qui ne fonctionne pas

// cette fonction concatène un zéro à la fin de la valeur passée en paramètre
function maFonction(param) {
  return param + '0';
}

Comment savoir si cette fonction fonctionne bien ? (c.a.d. sans bug)

  • il suffit de la copier-coller dans la console
  • il faut taper maFonction dans la console
  • vérifier que le test passe: maFonction(1) === '10';
  • vérifier que maFonction(1) renvoie bien true

Supposons que nous avons défini une fonction doubler() qui retourne le double du nombre passé en paramètre, lors de son appel.

Que se passe-t-il si on exécute l'instruction suivante:

var maVariable = doubler(3);
  • le résultat va être affecté à maVariable
  • le résultat va s'afficher dans la console
  • maVariable contient la définition de la fonction
  • maVariable contient l'appel de la fonction

Fonctions - Code

Définir une fonction soustraire qui retourne le résultat de la soustraction a - b, a et b étant des paramètres de cette fonction.

Respecter les conventions et règles d'indentation vues en cours.


Définir une fonction somme qui retourne la somme des trois nombres passés en paramètres.

Exemple d'appel: somme(1, 3, -2); doit retourner 2.


Définir une fonction repeter qui affiche n fois 'Bonjour!' dans la console, puis qui retourne n, n étant un paramètre de cette fonction.

Respecter les conventions et règles d'indentation vues en cours.


Définir une fonction sommeIntervalle qui retourne la somme de tous les nombres entiers compris entre les nombres premier et dernier (compris) passés en paramètres.

Exemple d'appel: sommeIntervalle(2, 5); doit retourner 14 (résultat de 2 + 3 + 4 + 5).

Tableaux - Code

Créez une variable nombres de type tableau et contenant les nombres 1, 2 et 3.


Vous disposez d'une variable fruits contenant un tableau de chaînes de caractères.

Saisissez le code JavaScript pour créer une variable troisieme et lui affecter la valeur du 3ème élément de ce tableau.


Vous disposez d'une variable fruits contenant un tableau de chaînes de caractères.

Saisissez le code JavaScript permettant de retirer le dernier élément de ce tableau, et d'afficher la valeur de cet élément dans la console.


Définir une fonction tableauContient qui prend deux paramètres:

  • tableau: un tableau de chaînes de caractères
  • chaine: une chaîne de caractères

...et retourne:

  • false si la valeur chaine n'a pas été trouvée dans le tableau tableau,
  • ou le premier indice (à partir de 0) auquel a été trouvé la valeur chaine dans le tableau tableau.

Exemples d'appels:

  • tableauContient(['a', 'b', 'c'], 'b'); doit retourner 1.
  • tableauContient(['a', 'b', 'c'], 'd'); doit retourner false.