CodeGym /Cours /Frontend SELF FR /Compléments intéressants

Compléments intéressants

Frontend SELF FR
Niveau 46 , Leçon 3
Disponible

8.1 Nombres pseudo-aléatoires

Parfois, un programmeur se retrouve avec des tâches simples en apparence : « choisir un film aléatoire pour la soirée dans une liste spécifique », « choisir un gagnant de la loterie », « mélanger une liste de chansons en secouant le smartphone », « choisir un nombre aléatoire pour chiffrer un message », et chaque fois il se pose une question très légitime : comment obtenir ce fameux nombre aléatoire ?

En fait, si tu veux obtenir un « vrai nombre aléatoire », c'est assez difficile. Au point que des coprocesseurs mathématiques spéciaux sont intégrés dans les ordinateurs, capables de générer de tels nombres, remplissant toutes les exigences de la « vraie aléa ».

Donc, les programmeurs ont trouvé leur propre solution — les nombres pseudo-aléatoires. Les nombres pseudo-aléatoires sont une certaine séquence, où les nombres semblent au premier abord aléatoires, mais un spécialiste pourra, en les analysant de près, y trouver certaines régularités. Pour le chiffrement de documents secrets, ces nombres ne conviennent pas, mais pour simuler le lancer de dé dans un jeu — si.

Il existe de nombreux algorithmes pour générer une séquence de nombres pseudo-aléatoires et presque tous génèrent le prochain nombre aléatoire sur la base du précédent et de quelques nombres auxiliaires.

Par exemple, ce programme affichera 1000 nombres uniques :

JavaScript
    
      let a = 41;
      let c = 11119;
      let m = 11113;
      let seed = 1;

      function getNextRandom() {
        seed = (a * seed + c) % m;
        return seed;
      }

      for (let t = 0; t < 1000; t++) {
        let x = getNextRandom();
        console.log(x);
      }
    
  

D'ailleurs, nous ne parlons pas de nombres pseudo-aléatoires, mais précisément de la séquence de ces nombres, car en regardant un seul nombre, il est impossible de comprendre s'il est aléatoire ou non.

Tu peux obtenir un nombre aléatoire de différentes manières :

JavaScript
    
      function getNextRandom() {
        return 4; # c'est carrément aléatoire (je l'ai tiré au dé)
      }
    
  

8.2 L'opérateur switch

L'opérateur switch est utilisé pour exécuter un des plusieurs blocs de code en fonction de la valeur d'une expression. Il est particulièrement utile quand il est nécessaire de comparer une valeur avec plusieurs options possibles.

Syntaxe :

    
      switch(expression) {
        case value1:
          // code qui s'exécute si expression === value1
          break;
        case value2:
          // code qui s'exécute si expression === value2
          break;
        // ...
        default:
          // code qui s'exécute si aucune des valeurs ne correspond
      }
    
  

Exemple :

JavaScript
    
      let day = 3;
      let dayName;

      switch (day) {
        case 1:
          dayName = "Lundi";
          break;
        case 2:
          dayName = "Mardi";
          break;
        case 3:
          dayName = "Mercredi";
          break;
        case 4:
          dayName = "Jeudi";
          break;
        case 5:
          dayName = "Vendredi";
          break;
        case 6:
          dayName = "Samedi";
          break;
        case 7:
          dayName = "Dimanche";
          break;
        default:
          dayName = "Jour invalide";
      }

      console.log(dayName); // "Mercredi"
    
  

8.3 L'opérateur ??

L'opérateur ??, ou nullish coalescing operator, est utilisé pour assigner une valeur par défaut si l'opérande gauche est null ou undefined. Il permet d'éviter l'application d'une valeur par défaut pour d'autres valeurs fausses, comme 0, false, ou une chaîne vide ("").

Syntaxe :

    
      let result = value1 ?? value2;
    
  

Si value1 n'est pas null ou undefined, result sera value1. Sinon, result sera value2.

Exemples :

JavaScript
    
      let foo = null ?? 'default';
      console.log(foo); // 'default'

      let bar = 0 ?? 'default';
      console.log(bar); // 0 (0 n'est pas null ou undefined)

      let baz = undefined ?? 'default';
      console.log(baz); // 'default'
    
  

Différence avec le OU logique (||)

L'opérateur || peut également être utilisé pour définir une valeur par défaut, mais il renvoie l'opérande de droite pour toutes les valeurs fausses, comme 0, "", ou NaN.

Exemple de comparaison :

JavaScript
    
      let value = 0 || 'default';
      console.log(value); // 'default' (car 0 est une valeur fausse)

      let value2 = 0 ?? 'default';
      console.log(value2); // 0 (car 0 n'est pas null ou undefined)
    
  

Utilisation

L'opérateur ?? est utile dans les situations où il est nécessaire de définir une valeur par défaut uniquement pour null ou undefined, tout en conservant les valeurs fausses, telles que 0 ou "".

Exemples réels d'utilisation

Exemple 1. Valeurs par défaut dans les objets de configuration :

JavaScript
    
      function configure(settings) {
        settings = settings ?? {};
        let timeout = settings.timeout ?? 1000;
        let color = settings.color ?? 'blue';
        // logique de configuration restante
      }
    
  

Exemple 2. Paramètres par défaut pour les fonctions :

JavaScript
    
      function printMessage(message) {
        message = message ?? 'Aucun message fourni';
        console.log(message);
      }

      printMessage(null); // 'Aucun message fourni'
      printMessage('Hello'); // 'Hello'
    
  

L'utilisation de l'opérateur ?? permet d'écrire du code plus propre et prévisible, surtout dans les situations où il est important de ne considérer que l'absence de valeur (null ou undefined).

1
Étude/Quiz
Cookies, WebStorage et Web API, niveau 46, leçon 3
Indisponible
Cookies, WebStorage et Web API
Cookies, WebStorage et Web API
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION