Conditions JavaScript
Conditions IF / ELSE
// Syntaxe de base: if (condition) { ... }
let age = 18;
if (age >= 18) {
console.log("Vous êtes majeur");
}
// if...else: exécuter du code alternatif
let temperature = 15;
if (temperature > 20) {
console.log("Il fait chaud");
} else {
console.log("Il fait froid");
}
// Chaîner plusieurs conditions avec else if
let note = 85;
if (note >= 90) {
console.log("Excellent");
} else if (note >= 80) {
console.log("Très bien");
} else if (note >= 70) {
console.log("Bien");
} else if (note >= 60) {
console.log("Passable");
} else {
console.log("Insuffisant");
}
Opérateurs de comparaison
// Égalité faible (==) vs égalité stricte (===)
console.log("--- Égalité faible vs stricte ---");
console.log(5 == "5"); // true - conversion automatique
console.log(5 === "5"); // false - types différents
console.log(null == undefined); // true
console.log(null === undefined); // false
console.log(0 == false); // true
console.log(0 === false); // false
// CONSEIL: utilisez toujours === et !== pour éviter les surprises !
// Autres opérateurs de comparaison
let a = 10;
let b = 20;
console.log("--- Opérateurs de comparaison ---");
console.log(`${a} < ${b}: ${a < b}`); // true
console.log(`${a} > ${b}: ${a > b}`); // false
console.log(`${a} <= ${b}: ${a <= b}`); // true
console.log(`${a} >= ${b}: ${a >= b}`); // false
console.log(`${a} !== ${b}: ${a !== b}`); // true
Opérateurs logiques
// && (ET logique) - toutes les conditions doivent être vraies
let utilisateurConnecte = true;
let ageUtilisateur = 25;
if (utilisateurConnecte && ageUtilisateur >= 18) {
console.log("Accès autorisé");
}
// || (OU logique) - au moins une condition doit être vraie
let estAdmin = false;
let estModerator = true;
if (estAdmin || estModerator) {
console.log("Vous pouvez modérer le contenu");
}
// ! (NON logique) - inverse la valeur
let estInactif = false;
if (!estInactif) {
console.log("L'utilisateur est actif");
}
Valeurs truthy et falsy
// En JavaScript, certaines valeurs sont considérées comme "falsy"
let valeursFalsy = [false, 0, "", null, undefined, NaN];
// Toutes les autres valeurs sont "truthy"
console.log("--- Valeurs truthy ---");
let valeursTruthy = [true, 1, "hello", [], {}, "0", " "];
Condition ternaire
// Syntaxe: condition ? valeurSiVrai : valeurSiFaux
// C'est un raccourci pour if...else simple
let pointsVie = 75;
let statutSante = pointsVie > 50 ? "En bonne santé" : "Blessé";
console.log(`Statut: ${statutSante}`);
// Ternaire imbriquée (à utiliser avec modération)
let score = 85;
let mention = score >= 90 ? "Excellent" :
score >= 80 ? "Très bien" :
score >= 70 ? "Bien" : "Peut mieux faire";
console.log(`Mention: ${mention}`);
SWITCH / CASE
// Utile quand on compare une même variable à plusieurs valeurs
let jourSemaine = "mardi";
switch (jourSemaine) {
case "lundi":
console.log("Début de semaine, courage !");
break;
case "mardi":
case "mercredi":
case "jeudi":
console.log("Milieu de semaine");
break;
case "vendredi":
console.log("Presque le weekend !");
break;
case "samedi":
case "dimanche":
console.log("Weekend !");
break;
default:
console.log("Jour non reconnu");
}
// Exemple avec des nombres
let mois = 3;
let nomMois;
switch (mois) {
case 1: nomMois = "Janvier"; break;
case 2: nomMois = "Février"; break;
case 3: nomMois = "Mars"; break;
case 4: nomMois = "Avril"; break;
case 5: nomMois = "Mai"; break;
case 6: nomMois = "Juin"; break;
default: nomMois = "Mois invalide";
}
console.log(`Mois ${mois}: ${nomMois}`);
Short-circuit evaluation
// && peut être utilisé pour exécuter du code conditionnellement
let user = { nom: "Alice", estConnecte: true };
user.estConnecte && console.log(`Bienvenue ${user.nom}!`);
// Équivalent à: if (user.estConnecte) { console.log(`Bienvenue ${user.nom}!`); }
// || peut être utilisé pour définir des valeurs par défaut
let nomUtilisateur = null;
let nomAffiche = nomUtilisateur || "Invité";
console.log(`Bonjour ${nomAffiche}!`);
// ?? (nullish coalescing) - seulement pour null et undefined
let config = { theme: null };
let theme = config.theme ?? "clair";
console.log(`Thème: ${theme}`);
// Différence entre || et ??
let valeur1 = 0;
console.log("Avec ||:", valeur1 || "défaut"); // "défaut" (car 0 est falsy)
console.log("Avec ??:", valeur1 ?? "défaut"); // 0 (car 0 n'est ni null ni undefined)