JS-reparationsværktøj
Reparer ødelagt JavaScript-kode automatisk
Hvad er JS-reparationsværktøjet?
Du indsætter et snippet fra en doc-side eller en chattråd, og parseren springer i luften. Et semikolon mangler der hvor ASI ikke hjalp. En klammer er forsvundet. En streng løber over linjeenden. Dette værktøj tager den ødelagte JavaScript og giver dig noget tilbage, som motoren faktisk vil acceptere.
JavaScripts grammatik er defineret af ECMAScript-specifikationen fra TC39, og det er hvad enhver browser og Node.js følger når de parser din kode. JavaScript-referencen hos MDN gennemgår reglerne i klart sprog. Automatic Semicolon Insertion (ASI) er en del af den grammatik — behageligt det meste af tiden, smertefuldt når et uventet linjeskift stille og roligt ændrer hvad din kode betyder. Dette værktøj sigter mod brud på syntaksniveau; vil du også have fuld omformatering, så send outputtet gennem Prettier bagefter.
Alt går gennem din browser til vores backend og tilbage. Brug det som første gennemløb før du sigter ESLint mod filen — de fleste regelovertrædelser er lettere at læse, når koden i det mindste parser.
Sådan bruger du JS-reparationsværktøjet
Tre trin. Hvert trin bruger de faktiske knapper og paneler på denne side.
Indsæt ødelagt JS eller indlæs eksempel
Læg din ødelagte JavaScript i den venstre editor. Klik på Eksempel-JS for at se hvilken slags input værktøjet håndterer. Det klassiske rod ser sådan ud — manglende semikoloner, et manglende komma i en objektliteral, en ubalanceret klammer, en værdi der skulle være en streng men blev tastet uden anførselstegn:
function processOrder(customer) {
const order = { id: "ORD-9001" customer: customer, status: pending }
return order
Værktøjet klarer manglende semikoloner, ubalancer i `{`/`}`, `[`/`]` og `(`/`)`, manglende kommaer i objekter og arrays, uciterede værdier, ikke-afsluttede strenge og mærkelige operatorkombinationer.
Klik på Fix JS!!
Tryk på den grønne Fix JS!!-knap. Koden går til backend, bliver repareret og kommer tilbage parsbar. En indlæsningsindikator vises imens — som regel et sekund eller to.
Gennemse outputtet
Det højre panel viser den rettede kode. Semantikken forbliver så tæt på dit input som muligt — kun syntaksen repareres. Kopier outputtet, indsæt det tilbage i din editor og kør din formatter eller linter på det.
Hvornår du virkelig bruger det
Genskabe indsatte snippets
Kode der kommer fra en Slack-tråd, et StackOverflow-svar eller en PDF mister ofte anførselstegn, linjefortsættelser eller hele tegnsætninger undervejs. Kør den herigennem før du begynder at redigere i hånden.
Fejlsøge udtrukket minified kode
Når du læser en stack trace fra et produktionsbundle og hiver et fragment ud til inspektion, er halvdelen af kampen at få det til at parse. Fix syntaksen først, forskøn bagefter, grav til sidst.
ASI-overraskelser
Kode der lænede sig op ad automatisk semikolonindsættelse kan gå i stykker på subtile måder — et `return` efterfulgt af et linjeskift returnerer stille og roligt `undefined`, for eksempel. Værktøjet tilføjer eksplicitte semikoloner der hvor parseren vil have dem.
Rydde op i AI-genererede stubbe
Snippets genereret af en LLM taber af og til en klammer eller springer et komma over. Fix syntaksen her, før du smider resultatet ind i Babel eller din bundler.
Almindelige spørgsmål
Gemmes min kode nogen steder?
Den sendes til vores backend, så AI-modellen kan reparere den, og så giver vi resultatet tilbage. Vi logger ikke koden, vi træner ikke på den, og vi bruger den ikke til andet end at reparere lige denne anmodning.
Hvilke typer fejl retter det?
Ting på syntaksniveau: manglende semikoloner, ubalancerede klammer / kantede / runde parenteser, manglende kommaer i objekter og arrays, uciterede værdier hvor en streng var ventet, ikke-afsluttede strenge og template literals, malformede operatorkombinationer. Logikfejl (forkert betingelse, off-by-one) er uden for scope.
Vil det ændre betydningen af min kode?
Det gør sig umage for ikke at gøre det. Målet er at holde semantikken intakt og kun reparere grammatikken. Der er kanttilfælde, hvor det er nødvendigt at fortolke (en uciteret token der hvor en streng tydeligvis hører til, for eksempel) — i de tilfælde vælger værktøjet den mest sandsynlige hensigt. Kig altid på outputtet.
Understøttes TypeScript?
TypeScript-specifik syntaks — typeannoteringer, generics, decorators — er uden for scope. JS-delmængden af TS (klasser, async/await, template literals, moderne array-metoder) parser fint. For en rigtig TS-konvertering, se vores værktøj JS til TypeScript.
Kan jeg bruge dette på produktionskode?
Det er et syntaksreparationsværktøj, ikke en erstatning for en linter eller typetjekker. Behandl outputtet som et udgangspunkt — kør det gennem ESLint og din testsuite, før du sender det i produktion.
Er der kode, det simpelthen ikke kan reparere?
Nogle gange. Hvis inputtet er for fragmentarisk eller den oprindelige hensigt er reelt tvetydig (flere plausible reparationer), vælger værktøjet én — men resultatet kan være syntaktisk gyldigt og semantisk forkert. Gennemgå altid outputtet, især for input på få linjer.
Andre JavaScript-værktøjer du måske har brug for
At reparere syntaksen er kun trin et. Her er de andre JavaScript-værktøjer på sitet: