Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
web:javascript:fondamentaux:conditions [2021/06/20 09:55] – [6. Combinaison de conditions] phil | web:javascript:fondamentaux:conditions [2021/08/11 10:55] (Version actuelle) – phil | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | [[web: | ||
+ | ===== JavaScript - Les tests conditionnels ===== | ||
+ | |||
+ | [Mise à jour le 20/6/2021] | ||
+ | |||
+ | |||
+ | * **Sources** et compléments sur **MDN Web Docs** | ||
+ | * < | ||
+ | * < | ||
+ | |||
+ | * ** Lectures connexes** | ||
+ | * Wikis WebPEM : [[: | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Introduction ==== | ||
+ | Les tests conditionnels permettent d' | ||
+ | |||
+ | ==== 1. Le test simple ==== | ||
+ | < | ||
+ | |||
+ | //Exemple// : calcul de frais de port à un seuil. | ||
+ | <code javascript *.js> | ||
+ | if (montant >= 100) { | ||
+ | var port = 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== 2. Le test si - sinon ==== | ||
+ | < | ||
+ | |||
+ | //Exemple 1 // : calcul de frais de port à un seuil. | ||
+ | <code javascript *.js> | ||
+ | var port = 0; | ||
+ | if (montant >= 100) { | ||
+ | port = 0; | ||
+ | } else { | ||
+ | port = 6.9; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | //Exemple 2 // : calcul de frais de port à deux seuils. | ||
+ | <code javascript *.js> | ||
+ | var port = 0; | ||
+ | if (montant >= 100) { | ||
+ | port = 0; | ||
+ | } else if (montant >= 50){ | ||
+ | port = 3.9; | ||
+ | } else { | ||
+ | port = 6.9; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== 3. Les tests multiples ==== | ||
+ | < | ||
+ | |||
+ | //Syntaxe// | ||
+ | <code javascript *.js> | ||
+ | switch (expression) { | ||
+ | case valeur1 : | ||
+ | blocInstructions1 // Ce bloc d' | ||
+ | break; | ||
+ | | ||
+ | ... | ||
+ | | ||
+ | case valeurN : | ||
+ | blocInstructionsN | ||
+ | break; | ||
+ | default : | ||
+ | blocInstructionsDefault | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | //Exemple// | ||
+ | <code javascript *.js> | ||
+ | < | ||
+ | < | ||
+ | |||
+ | < | ||
+ | <meta charset=" | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | <h1 id=" | ||
+ | <script type=" | ||
+ | var dt = new Date(); | ||
+ | var jour = dt.getDay(); | ||
+ | var msg = ""; | ||
+ | switch (jour) { | ||
+ | case 1: | ||
+ | msg = " | ||
+ | break; | ||
+ | case 0: | ||
+ | case 6: | ||
+ | msg = " | ||
+ | break; | ||
+ | default: | ||
+ | msg = "En semaine"; | ||
+ | break; | ||
+ | } | ||
+ | document.getElementById(" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | ==== 4. L' | ||
+ | < | ||
+ | |||
+ | //Exemple// : calcul de frais de port à un seuil. | ||
+ | <code javascript *.js> | ||
+ | var port= montant >= 100? 0 : 6.9; | ||
+ | </ | ||
+ | |||
+ | <note tip>Le gros avantage de l' | ||
+ | |||
+ | //Exemple// : ajout d'un s à la fin d'un mots en fonction de la valeur d'un nombre | ||
+ | <code javascript *.js> | ||
+ | console.log(" | ||
+ | </ | ||
+ | |||
+ | ====5. Les conditions ==== | ||
+ | < | ||
+ | |||
+ | Une variable peut recevoir le résultat d'une expression de test de condition. | ||
+ | |||
+ | // Exemple // | ||
+ | |||
+ | <code javascript *.js> | ||
+ | var estMajeur = age >= 18; | ||
+ | </ | ||
+ | |||
+ | <note tip>Une condition est considérée comme vraie si elle renvoie toute valeur | ||
+ | |||
+ | // Exemple // | ||
+ | |||
+ | <code javascript *.js> | ||
+ | if (nbArticle) { | ||
+ | msg = "Il y a " + nbArticles + " | ||
+ | } | ||
+ | else { | ||
+ | msg = "Le panier est vide." | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * **Opérateurs d' | ||
+ | * égalité : **==** | ||
+ | * différence : **!=** | ||
+ | |||
+ | // Exemples // | ||
+ | |||
+ | <code javascript *.js> | ||
+ | var nb = 5; | ||
+ | nb == 5; // true | ||
+ | nb == 6; // false | ||
+ | nb == " | ||
+ | nb == " | ||
+ | nb = 10 / 2; // true | ||
+ | </ | ||
+ | |||
+ | <note warning> | ||
+ | - Le test est toujours vrai, car une affectation réussie renvoir //true//. \\ | ||
+ | - La variable à tester change de valeur.</ | ||
+ | |||
+ | * **Opérateur d' | ||
+ | * égalité : **===** | ||
+ | * différence: | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | // Exemples // | ||
+ | |||
+ | <code javascript *.js> | ||
+ | var nb = 5; | ||
+ | nb == 5; // true | ||
+ | nb == " | ||
+ | nb === " | ||
+ | </ | ||
+ | |||
+ | * **Autres opérateurs** | ||
+ | * > : strictement supérieur à | ||
+ | * > : strictement inférieur à | ||
+ | * >= supérieur ou égal à | ||
+ | * <= inférieur ou égal à | ||
+ | |||
+ | * **Valeur //null//** | ||
+ | < | ||
+ | |||
+ | // Exemples // | ||
+ | |||
+ | <code javascript *.js> | ||
+ | // Egalités faibles | ||
+ | console.log(null == false) // false | ||
+ | console.log(null == undefined) // true | ||
+ | |||
+ | // Egalités strictes | ||
+ | console.log(null === false) // false | ||
+ | console.log(null === undefined) // false | ||
+ | |||
+ | // Affectations et types | ||
+ | var nonNull = null, nonNullBis = null; | ||
+ | console.log(typeof nonNull) // object | ||
+ | console.log(nonNull === nonNullBis) // true | ||
+ | </ | ||
+ | |||
+ | ==== 6. Combinaison de conditions ==== | ||
+ | Les combinaisons de condition sont réalisées avec les opérateurs : | ||
+ | * **ET** matérialisé par **&& | ||
+ | * **OU** matérialisé par **||** (double //pipe//) | ||
+ | |||
+ | // Exemples // | ||
+ | |||
+ | <code javascript *.js> | ||
+ | if ((a == 1) && (b == 2)) { } | ||
+ | if ((a != 1) && (b == 2)) { } | ||
+ | if ((a == 1) || (b == 2)) { } | ||
+ | if ((a != 1) || (b == 2)) { } | ||
+ | if ((a == 0) || ((a == 1) && (b == 2))) { } | ||
+ | </ | ||
+ | |||
+ | * **Inversion de sens** | ||
+ | Une inversion de sens simplifie parfois la syntaxe et améliore la compréhension d'une condition. | ||
+ | |||
+ | <note tip>En algèbre booléenne, la négation d'une expression consiste à inverser les ET et les OU, les égalités et les différences, | ||
+ | |||
+ | // Exemples // | ||
+ | |||
+ | <code javascript *.js> | ||
+ | // La condition ci-dessous : | ||
+ | if ((a != 1) || (b != 2)) { } | ||
+ | // peut être remplacée par | ||
+ | if ((a == 1) && (b == 2)) { } | ||
+ | </ |