Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 4 · Exercice de TD

Un seuil introuvable

Portée, fermetures et this · niveau 1 (application)

Énoncé

Ce programme échoue. Expliquer le message, puis corriger.


function prixLivraison(poids) {
  if (poids > seuil) {
    return 0;
  }
  return 490;
  const seuil = 2000;
}
console.log(prixLivraison(1500));

Corrigé


ex2-zone-morte.mjs:2
  if (poids > seuil) {
              ^

ReferenceError: Cannot access 'seuil' before initialization

La constante seuil est déclarée dans le corps de la fonction, donc remontée au début de ce corps, mais en zone morte jusqu'à sa déclaration, qui n'est d'ailleurs jamais atteinte, puisqu'elle suit un return. On la déclare en tête de fonction (ou du module, si c'est une constante de la Librairie) :


const SEUIL_LIVRAISON_OFFERTE = 2000;

function prixLivraison(poids) {
  return poids > SEUIL_LIVRAISON_OFFERTE ? 0 : 490;
}

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →