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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.