CodeGym /Java Kurs /Frontend SELF DE /Interessante Ergänzungen

Interessante Ergänzungen

Frontend SELF DE
Level 46 , Lektion 3
Verfügbar

8.1 Pseudozufallszahlen

Manchmal steht ein Programmierer vor einfachen, so scheint es, Aufgaben: „einen zufälligen Film für den Abend aus einer bestimmten Liste auswählen“, „den Gewinner einer Lotterie auswählen“, „eine Playlist mischen, wenn das Smartphone geschüttelt wird“, „eine zufällige Zahl zur Verschlüsselung einer Nachricht auswählen“, und jedes Mal stellt sich die sehr berechtigte Frage: Wie bekommt man diese zufällige Zahl?

Tatsächlich ist es ziemlich schwierig, eine „wirklich zufällige Zahl“ zu erhalten. Sogar so weit, dass spezielle mathematische Coprozessoren in Computer eingebaut werden, die solche Zahlen mit allen Anforderungen an die „wahre Zufälligkeit“ generieren können.

Daher haben Programmierer ihre eigene Lösung erfunden - pseudozufällige Zahlen. Pseudozufällige Zahlen sind eine bestimmte Sequenz, bei der die Zahlen auf den ersten Blick zufällig erscheinen, aber ein Fachmann kann bei genauer Analyse bestimmte Muster feststellen. Zur Verschlüsselung geheimer Dokumente sind diese Zahlen ungeeignet, aber zur Simulation eines Würfelwurfs im Spiel durchaus.

Es gibt viele Algorithmen zur Generierung einer Sequenz von Pseudozufallszahlen und fast alle von ihnen generieren die nächste zufällige Zahl basierend auf der vorherigen und einigen weiteren Hilfszahlen.

Zum Beispiel gibt dieses Programm 1000 einzigartige Zahlen aus:

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);
      }
    
  

Übrigens, wir sprechen nicht von Pseudozufallszahlen, sondern von einer Sequenz solcher Zahlen, da man durch das Betrachten einer Zahl nicht verstehen kann, ob sie zufällig ist oder nicht.

Eine zufällige Zahl kann auf verschiedene Weise erhalten werden:

JavaScript
    
      function getNextRandom() {
        return 4; # das ist definitiv eine zufällige Zahl (ich habe sie mit Würfeln geworfen)
      }
    
  

8.2 Der switch-Operator

Der switch-Operator wird verwendet, um einen von mehreren Codeblöcken basierend auf dem Wert eines Ausdrucks auszuführen. Er ist besonders nützlich, wenn man einen Wert mit mehreren möglichen Optionen vergleichen muss.

Syntax:

    
      switch(expression) {
        case value1:
          // Code, der ausgeführt wird, wenn expression === value1
          break;
        case value2:
          // Code, der ausgeführt wird, wenn expression === value2
          break;
        // ...
        default:
          // Code, der ausgeführt wird, wenn keiner der Werte übereinstimmt
      }
    
  

Beispiel:

JavaScript
    
      let day = 3;
      let dayName;

      switch (day) {
        case 1:
          dayName = "Montag";
          break;
        case 2:
          dayName = "Dienstag";
          break;
        case 3:
          dayName = "Mittwoch";
          break;
        case 4:
          dayName = "Donnerstag";
          break;
        case 5:
          dayName = "Freitag";
          break;
        case 6:
          dayName = "Samstag";
          break;
        case 7:
          dayName = "Sonntag";
          break;
        default:
          dayName = "Ungültiger Tag";
      }

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

8.3 Der ??-Operator

Der ??-Operator, oder nullish coalescing operator, wird verwendet, um einen Standardwert zuzuweisen, wenn der linke Operand null oder undefined ist. Er ermöglicht es, die Anwendung eines Standardwerts für andere „falsy“ Werte wie 0, false, oder einen leeren String ("") zu vermeiden.

Syntax:

    
      let result = value1 ?? value2;
    
  

Wenn value1 nicht null oder undefined ist, wird result value1 sein. Andernfalls wird result value2 sein.

Beispiele:

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

      let bar = 0 ?? 'default';
      console.log(bar); // 0 (0 ist nicht null oder undefined)

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

Unterschied zum logischen ODER (||)

Der ||-Operator kann ebenfalls verwendet werden, um einen Standardwert festzulegen, aber er gibt den rechten Operand für alle „falsy“ Werte zurück, wie 0, "", oder NaN.

Vergleichsbeispiel:

JavaScript
    
      let value = 0 || 'default';
      console.log(value); // 'default' (da 0 ein „falsy“ Wert ist)

      let value2 = 0 ?? 'default';
      console.log(value2); // 0 (da 0 nicht null oder undefined ist)
    
  

Anwendung

Der ??-Operator ist nützlich in Situationen, in denen es wichtig ist, nur das Fehlen eines Wertes (null oder undefined) zu berücksichtigen, und „falsy“ Werte wie 0 oder "" beizubehalten.

Echte Anwendungsbeispiele

Beispiel 1. Standardwerte in Konfigurationsobjekten:

JavaScript
    
      function configure(settings) {
        settings = settings ?? {};
        let timeout = settings.timeout ?? 1000;
        let color = settings.color ?? 'blue';
        // restliche Logik zur Konfiguration
      }
    
  

Beispiel 2. Standardparameter für Funktionen:

JavaScript
    
      function printMessage(message) {
        message = message ?? 'Keine Nachricht angegeben';
        console.log(message);
      }

      printMessage(null); // 'Keine Nachricht angegeben'
      printMessage('Hallo'); // 'Hallo'
    
  

Die Verwendung des ??-Operators erlaubt es, saubereren und vorhersehbareren Code zu schreiben, besonders in Situationen, in denen es wichtig ist, nur das Fehlen eines Wertes (null oder undefined) zu berücksichtigen.

1
Опрос
Cookies, WebStorage und Web API,  46 уровень,  3 лекция
недоступен
Cookies, WebStorage und Web API
Cookies, WebStorage und Web API
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION