Erklären Sie, wie ChangeDetectionStrategy.OnPush funktioniert und worin sie sich von der Strategie Default unterscheidet.
Frontend
Welche Probleme löst die Dependency Injection in Angular und welche Vorteile bietet die Bereitstellung von Diensten auf Anwendungs- und Komponentenebene?
Implementieren Sie eine einfache Slot-Maschine "Einarmiger Bandit": - Implementieren Sie drei Walzen (mit Zahlen von 0 bis 9, die in der Reihenfolge 0,1,2,...9,0,1,2... wechseln) - Bei jedem onRoll auf der Walze erscheint der nächste Wert - Wenn alle drei Ziffern nach dem Anhalten übereinstimmen, sagen wir, dass gewonnen wurde - Deaktivieren Sie die Schaltfläche während des Drehens Das physische Modell des Rads ist bereits in der Methode runSpinner implementiert, aber es hat nichts mit den Ziffern zu tun. Tipp: Beginnen Sie die Implementierung mit der ersten Walze, dann fügen Sie die anderen analog hinzu
Erzählen Sie, wie das Event Emitter-Muster funktioniert und ob Sie damit Erfahrung haben, insbesondere in Angular.
Woran erinnert sich this in fn, wenn man sie über call ohne Übergabe des Kontexts aufruft, im Strict Mode und ohne ihn?
Warum wird der Sieg falsch gezählt, auch wenn die Werte auf den Walzen unterschiedlich sind? Finde die Ursache des Bugs im Zusammenhang mit dem Race Condition bei der asynchronen Aktualisierung des Zustands.
Es gibt drei neue Typen. Es ist notwendig, einen neuen generischen Typ zu erstellen, der alle Felder dieser Typen enthält (unter Verwendung von Union).
Erklären Sie den Unterschied zwischen kalten und heißen Observable.
Teilen Sie die Anwendung nach der Architektur Feature-Sliced Design (FSD) auf — beschreiben Sie die Schichten App, Pages, Widgets, Features, Entities.
Versuche, die Situation zu simulieren, damit alle drei Zahlen auf den Walzen übereinstimmen, und überprüfe, ob eine Gewinnmeldung angezeigt wird.
React-Aufgabe (3 Unteraufgaben): 1) Das Bearbeitungsformular für den Benutzer reparieren — beim Klicken auf den Benutzernamen in der Liste soll der Name in das Eingabefeld des Bearbeitungsformulars eingefügt werden. 2) Das Bearbeitungsformular soll beim Eingeben von Text in das Suchfeld nicht neu gerendert werden (Optimierung mit React.memo). 3) Beim Auswählen eines Benutzers aus der Liste soll das Suchfeld zurückgesetzt werden.
Die Funktion simuliert das Drehen des Trommels mit einem allmählichen Stoppen - verwende onRoll für die Animationsrotation (Ändern des aktuellen Werts auf der Trommel) - und onStop, um zu benachrichtigen, wenn die Trommel aufgehört hat zu drehen Beispiel runSpinner( () => setValue(v => ++v % 10), () => console.log('finished') )
Gibt es drei verschiedene Indizes i, j, k, so dass die Summe a[i]+a[j]+a[k] mit der Ziffer m endet? Zum Beispiel, für m = 3 solve([20, 22, 19, 84]) => true // 20 + 84 + 19 = 123 solve([1,2,3]) => false
Was ist der Awaited-Hilfstyp in TypeScript?
Was ist der Unterschied zwischen ChangeDetectorRef.markForCheck() und detectChanges()?
Was ändert sich in der Logik des Typs, wenn `extends` durch `=` ersetzt wird (Standardwert für den Generic festlegen)?
Korrigiere den Code so, dass beim Klicken auf die Schaltfläche nur App neu gerendert wird, und beim Eingeben von Text in das Input nur Parent (ohne unnötige Neurendering von Child).
Kennen Sie die Metriken von Web Vitals? Wie kann man CLS (Cumulative Layout Shift) verbessern?
Warum wurde IndexedDB für die lokale Speicherung in Datenbanken gewählt und nicht etwas anderes? Welche Alternativen gibt es?
Was ändert sich in der Logik des Typs, wenn `extends` durch `=` ersetzt wird (Standardwert für generisch festlegen)?