Fiche Journée 2

return · conversion · boucles · formulaires

Durée de la journée : 7 h · return → conversion → mini-formulaires → boucles

1. Le piège de prompt()

prompt() renvoie toujours une string, même si on tape un chiffre.

let solde = prompt("Quel est votre solde ?");
// L’utilisateur tape 30 → solde vaut "30" (texte)
alert(solde + 10); // "3010" ❌  (concaténation, pas une addition)

Pourquoi ? "30" + 10 → JavaScript colle le texte → "3010".

2. Convertir en nombre — Number()

Fonction native qui transforme une string en number :

let solde = prompt("Quel est votre solde ?");
solde = Number(solde);
alert(solde + 10); // 40 ✅

Cas pratique — panier :

function calculerPanier() {
  let quantite = Number(prompt("Combien d'articles ?"));
  let prix = Number(prompt("Prix unitaire ?"));
  alert("Total : " + (quantite * prix) + " €");
}

3. Convertir en texte — .toString()

Pour transformer un nombre en chaîne :

let numeroCommande = 45;
let texte = numeroCommande.toString();
console.log("Commande n°" + texte); // Commande n°45

Utile pour afficher un numéro de facture, un code client, etc.

4. Tableau récap — conversions

BesoinOutilExemple
Texte → nombreNumber(x)Number("30") → 30
Nombre → textex.toString()(45).toString() → "45"
Vérifier le typetypeof xtypeof 30 → "number"

Les champs HTML renvoient aussi du texte (comme prompt). Sans Number(), risque de bugs du type "3010".

5. Exercice — 3 boutons (menu)

Avant le formulaire : trois boutons + un message au clic.

<button type="button" id="btnSandwich">🥪 Sandwich</button>
<button type="button" id="btnSalade">🥗 Salade</button>
<button type="button" id="btnHamburger">🍔 Hamburger</button>
<p id="message">Aucun plat sélectionné.</p>
document.getElementById("btnSandwich").addEventListener("click", function () {
  document.getElementById("message").textContent = "Tu as choisi : 🥪 Sandwich";
});

Idem pour Salade et Hamburger. Exemple : exercices/exemples/boutons-menu/

6. Exercice — commande (quantités)

Formulaire avec 3 champs nombre. Au submit : afficher la commande sans les plats à 0.

Vous avez commandé 2 burgers et 1 sandwich.

Exemple : exercices/exemples/commande-menu/

7. Mini-cours HTML — formulaire

HTML = structure. Un formulaire = zone de saisie + bouton de validation.

BaliseRôle
<form>Conteneur du formulaire
<label for="…">Libellé (relié à l’id de l’input)
<input>Champ (type="text", number…)
<button type="submit">Bouton qui valide
<form id="formInscription">
  <label for="prenom">Prénom</label>
  <input id="prenom" type="text" required />

  <label for="age">Âge</label>
  <input id="age" type="number" required />

  <button type="submit">Valider</button>
</form>
<p id="feedback"></p>

for du label = id de l’input (même nom).

8. Mini-cours CSS — ultra simple

CSS = apparence. Pas besoin que ce soit beau : champs lisibles, un peu d’espace.

body { font-family: Arial, sans-serif; margin: 20px; }
label { display: block; margin-top: 12px; }
input { display: block; width: 250px; padding: 4px; }
button { margin-top: 16px; padding: 6px 12px; }
#feedback { margin-top: 16px; }

display: block = l’élément passe à la ligne. margin = espace autour · padding = espace dedans.

9. JS sur le formulaire

Exemple complet : exercices/exemples/mini-formulaire/

10. Rappel express — Journée 1

NotionÀ retenir
let / constVariable modifiable / constante
Concaténation"Bonjour " + prenom
Dialoguesalert / confirm / prompt
DOMgetElementById, .value, addEventListener
returnRenvoie une valeur (ne l’affiche pas)
Âge (J1)Number(prompt(…)) + if / else

Checklist « Je sais… »

Relis cette fiche, puis valide tes acquis.