Fähigkeiten modern-javascript-patterns
📦

modern-javascript-patterns

Sicher

Moderne JavaScript-Muster

Auch verfügbar von: wshobson

Schreiben Sie saubereren, besser wartbaren JavaScript-Code mit ES6+-Features wie async/await, Destructuring, Spread-Operatoren und funktionalen Programmiermustern.

Unterstützt: Claude Codex Code(CC)
⚠️ 68 Schlecht
1

Die Skill-ZIP herunterladen

2

In Claude hochladen

Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen

3

Einschalten und loslegen

Teste es

Verwendung von "modern-javascript-patterns". Convert this callback to async/await: function getData(id, callback) { fetch('/api/' + id) .then(res => res.json()) .then(data => callback(null, data)) .catch(err => callback(err)); }

Erwartetes Ergebnis:

Refactored async/await version:

async function getData(id) {
try {
const res = await fetch(`/api/${id}`);
const data = await res.json();
return data;
} catch (err) {
throw err;
}
}

Benefits:
- Cleaner, synchronous-looking code
- Better error handling with try/catch
- Easier to debug and maintain

Verwendung von "modern-javascript-patterns". Apply destructuring to this code: const user = { name: 'John', age: 30, address: { city: 'NYC' } }; const name = user.name; const city = user.address.city;

Erwartetes Ergebnis:

Refactored with destructuring:

const user = { name: 'John', age: 30, address: { city: 'NYC' } };
const { name, address: { city } } = user;

Or with renaming:
const { name: userName, address: { city: userCity } } = user;

Sicherheitsaudit

Sicher
v1 • 2/25/2026

All 89 static findings are FALSE POSITIVES. The scanner misinterprets JavaScript code examples in markdown documentation as security risks. Backticks in code blocks are not shell commands. References to fetch() and dynamic import() are legitimate ES6+ patterns being taught. This is a safe educational skill about modern JavaScript patterns.

2
Gescannte Dateien
949
Analysierte Zeilen
5
befunde
1
Gesamtzahl Audits

Probleme mit hohem Risiko (1)

Weak Cryptographic Algorithm Detection (FALSE POSITIVE)
Scanner detected 'weak cryptographic algorithm' at lines 78, 80, 92, 101, 114, 118, 880. This is a FALSE POSITIVE - the scanner misinterprets JavaScript code examples (destructuring, toLowerCase(), spread operators) as cryptographic code. This is educational documentation about JavaScript syntax patterns.
Probleme mit mittlerem Risiko (2)
External Command Detection (FALSE POSITIVE)
Scanner detected 'Ruby/shell backtick execution' at 61 locations. This is a FALSE POSITIVE - the scanner detects backticks (`) in markdown code blocks. These are JavaScript code examples in markdown documentation, NOT shell commands.
Dynamic Import Detection (FALSE POSITIVE)
Scanner detected 'Dynamic import() expression' at lines 727, 728, 732. This is a FALSE POSITIVE - dynamic import() is a legitimate ES6+ JavaScript feature for lazy-loading modules. This is a core pattern being taught by this skill.
Probleme mit niedrigem Risiko (2)
Network Access Detection (FALSE POSITIVE)
Scanner detected 'Fetch API call' and 'Hardcoded URL' at lines 337, 387, 393, 789, 906-910. This is a FALSE POSITIVE - these are code examples showing how to use the Fetch API and links to legitimate educational resources (MDN, JavaScript.info, You Don't Know JS).
System Reconnaissance Detection (FALSE POSITIVE)
Scanner detected 'system reconnaissance' at 6 locations. This is a FALSE POSITIVE - the scanner misinterprets references to async iteration and system-related programming patterns as reconnaissance.
Auditiert von: claude

Qualitätsbewertung

38
Architektur
100
Wartbarkeit
87
Inhalt
30
Community
81
Sicherheit
91
Spezifikationskonformität

Was du bauen kannst

Modernisierung von Legacy-Code

Refactoring von älterem, callback-basiertem JavaScript-Code zur Verwendung von Promises und async/await für bessere Lesbarkeit und Fehlerbehandlung.

Lernen von modernem JavaScript

Verstehen und Anwenden von ES6+-Features wie Destructuring, Spread-Operatoren und Modulen, um ausdruckskräftigeren Code zu schreiben.

Verbesserung bei Code-Reviews

Anwendung moderner JavaScript-Muster während Code-Reviews, um sauberere, besser wartbare Implementierungen vorzuschlagen.

Probiere diese Prompts

Callback zu Async/Await konvertieren
Konvertieren Sie diese callback-basierte JavaScript-Funktion zur Verwendung von async/await-Syntax. Zeigen Sie den Code vorher und nachher.

[Callback-Code hier einfügen]
Destructuring anwenden
Refaktorieren Sie diesen JavaScript-Code zur Verwendung von Objekt- und Array-Destructuring. Machen Sie den Code prägnanter und lesbarer.

[Code mit verschachtelten Eigenschaften oder Arrays hier einfügen]
Funktionale Pipeline implementieren
Transformieren Sie diesen imperativen JavaScript-Code zur Verwendung funktionaler Programmierung mit map, filter und reduce. Zeigen Sie einen verkettbaren Pipeline-Ansatz.

[Schleifen-basierten Transformationscode hier einfügen]
Modul lazy laden
Zeigen Sie mir, wie man Lazy Loading mit dynamischem import() für dieses Feature-Modul implementiert. Einschließlich Fehlerbehandlung und bedingter LadeLogik.

Bewährte Verfahren

  • Verwenden Sie standardmäßig const, let nur wenn eine Neuzuweisung erforderlich ist
  • Bevorzugen Sie Arrow-Funktionen für Callbacks, um this-Binding-Probleme zu vermeiden
  • Verwenden Sie async/await statt Promise-Ketten für bessere Lesbarkeit

Vermeiden

  • Verwendung von var statt const/let - fehlende Block-Scope
  • Callback-Hölle mit verschachtelten anonymen Funktionen
  • Direkte Mutation von Objekten statt Verwendung von unveränderlichen Mustern

Häufig gestellte Fragen

Was ist der Unterschied zwischen let und const?
Verwenden Sie standardmäßig const für Werte, die nicht neu zugewiesen werden. Verwenden Sie let nur, wenn Sie eine Variable neu zuweisen müssen. Vermeiden Sie var in modernem JavaScript.
Wann sollte ich async/await statt Promises verwenden?
Verwenden Sie async/await für saubereren, besser lesbaren asynchronen Code. Es funktioniert gut für sequentielle asynchrone Operationen. Verwenden Sie Promise.all für parallele Operationen.
Was ist Destructuring in JavaScript?
Destructuring ermöglicht es Ihnen, Werte aus Arrays oder Eigenschaften aus Objekten mit einer prägnanten Syntax in einzelne Variablen zu extrahieren.
Was sind die Vorteile von Arrow-Funktionen?
Arrow-Funktionen haben eine kürzere Syntax, lexikalisches this-Binding (erbt this vom umgebenden Bereich) und können nicht als Konstruktoren verwendet werden.
Wofür wird der Spread-Operator verwendet?
Der Spread-Operator (...) erweitert Iterables (Arrays, Strings) in einzelne Elemente. Er wird für Array-Verkettung, Objektklonung und Funktionsargumente verwendet.
Wie helfen dynamische Imports der Leistung?
Dynamischer import() lädt Module auf Anfrage und ermöglicht Code-Splitting. Dies reduziert die anfängliche Bundle-Größe und verbessert die Seitenladezeit.