Skip to content

Latest commit

 

History

History
50 lines (37 loc) · 1.8 KB

File metadata and controls

50 lines (37 loc) · 1.8 KB

JavaScript / TypeScript Rules

Häufigste Fehler — Vermeide X, mache Y

Variablenvar x = 1 — function-scoped, Hoisting-Falle ✅ const als Default; let nur wenn Reassignment nötig

Vergleichex == null — prüft auch undefined ungewollt ✅ x === null für exakt null; x == null nur wenn null+undefined zusammen gewollt

Async.then().then().catch() Chains — schwer lesbar, Fehler gehen verloren ✅ async/await mit try/catchasync function f() { doSomething() } — fehlendes await ✅ Jeder async Call muss await haben oder explizit .catch() bekommen

Fehlerbehandlungpromise.then(fn) ohne .catch() — unhandled rejection ✅ await promise in try/catch ODER .catch(handler) immer anhängen

Arraysfor (const key in array) — iteriert über Prototype-Properties ✅ for (const item of array) oder .forEach() / .map()

Null-Safetyuser.address.city — crash wenn address undefined ✅ user?.address?.city ?? "unbekannt"

State (React/Vue)state.items.push(item) — direktes Mutieren ✅ setState([...state.items, item]) — immer neues Objekt/Array

TypeScriptas any als Problemlösung ✅ korrekten Typ definieren oder unknown mit Type Guard

Prinzipien

  • Immutability bevorzugenconst, spread, Object.freeze()
  • Kein Code nach return — toter Code erzeugt keine Warnung in JS
  • Event Listener aufräumenremoveEventListener / Cleanup in useEffect return
  • Fehler nie schluckencatch (e) {} verboten; mindestens loggen
  • Kein console.log in Commits — nur für temporäres Debugging

Module

  • Named exports bevorzugen über default exports (besser refactorbar)
  • Zirkuläre Imports vermeiden — auf Struktur hinweist das Modul zu groß ist