Zum Inhalt springen
Aback Tools Logo

JavaScript AST Visualizer und Explorer

Analysieren und erkunden Sie JavaScript-Code als interaktiven abstrakten Syntaxbaum. Fügen Sie einen beliebigen JS-Code ein oder laden Sie ihn hoch, um die analysierte Baumstruktur mit farbcodierten Knotentypen, erweiterbaren Zweigen, detaillierten Eigenschaften und Knotentypfilterung anzuzeigen. Perfekt, um die Codestruktur zu verstehen, verschleierte Skripte zu analysieren und zu lernen, wie JavaScript-Parser funktionieren.

JavaScript AST Visualizer & Explorer

Parse JavaScript code into an interactive Abstract Syntax Tree. Paste your code below, then explore the tree by expanding nodes and clicking to inspect properties.

AST Tree
▼ProgramProgram
▼body[4]
▼FunctionDeclarationFunction greet
name:greet
▼params[1]
▼Identifiername
name:name
▼BlockStatementBlockStatement
▼body[1]
▼ReturnStatementreturn
▼BinaryExpressionBinaryExpression + Literal
operator:+
▼BinaryExpressionLiteral + Identifier
operator:+
▼Literal"Hello, "
value:"Hello, "
raw:"Hello, "
▼Identifiername
name:name
▼Literal"!"
value:"!"
raw:"!"
generator:false
▼VariableDeclarationconst (1 declarator)
kind:const
▼declarations[1]
▼VariableDeclaratorVariableDeclarator
▼Identifierusers
name:users
▼ArrayExpressionArrayExpression
▼elements[3]
▼Literal"Alice"
value:"Alice"
raw:"Alice"
▼Literal"Bob"
value:"Bob"
raw:"Bob"
▼Literal"Charlie"
value:"Charlie"
raw:"Charlie"
▼ClassDeclarationClass Calculator
name:Calculator
▼body[2]
▼MethodDefinitionconstructor constructor
kind:constructor
▼Identifierconstructor
name:constructor
▼params[1]
▼Identifierfactor
name:factor
▼BlockStatementBlockStatement
▼body[1]
▼ExpressionStatementExpressionStatement
expression:[object Object]
generator:false
static:false
▼MethodDefinitionmethod multiply
kind:method
▼Identifiermultiply
name:multiply
▼params[2]
▼Identifiera
name:a
▼Identifierb
name:b
▼BlockStatementBlockStatement
▼body[1]
▼ReturnStatementreturn
▼BinaryExpressionBinaryExpression * MemberExpression
operator:*
▼BinaryExpressionIdentifier * Identifier
operator:*
▼Identifiera
name:a
▼Identifierb
name:b
▼MemberExpressionMember.
ThisExpressionThisExpression
▼Identifierfactor
name:factor
computed:false
generator:false
static:false
▼IfStatementif statement
▼BinaryExpressionMemberExpression > Literal
operator:>
▼MemberExpressionMember.
▼Identifierusers
name:users
▼Identifierlength
name:length
computed:false
▼Literal0
value:0
raw:0
▼BlockStatementBlockStatement
▼body[1]
▼ForStatementfor statement
▼VariableDeclarationlet (1 declarator)
kind:let
▼declarations[1]
▼VariableDeclaratorVariableDeclarator
▼Identifieri
name:i
▼Literal0
value:0
raw:0
▼BinaryExpressionIdentifier < MemberExpression
operator:<
▼Identifieri
name:i
▼MemberExpressionMember.
▼Identifierusers
name:users
▼Identifierlength
name:length
computed:false
▼UpdateExpressionUpdateExpression
operator:++
▼Identifieri
name:i
prefix:false
▼BlockStatementBlockStatement
▼body[1]
▼ExpressionStatementExpressionStatement
expression:[object Object]
Parse Stats
Lines of code21
Tokens99
Unique node types20
Total nodes71
Node Type Breakdown
Identifier25
Literal7
BinaryExpression6
MemberExpression6
BlockStatement5
ReturnStatement2
VariableDeclaration2
VariableDeclarator2
MethodDefinition2
ExpressionStatement2
ThisExpression2
CallExpression2
Program1
FunctionDeclaration1
ArrayExpression1
ClassDeclaration1
AssignmentExpression1
IfStatement1
ForStatement1
UpdateExpression1

Click any AST node to view its properties

Warum unseren JavaScript AST Visualizer verwenden?

  • Sofortige AST-Visualisierung: Analysieren Sie jeden JavaScript-Code und visualisieren Sie seinen abstrakten Syntaxbaum sofort als interaktiven Baum. Fügen Sie JS-Code ein oder laden Sie ihn hoch und sehen Sie sofort die analysierte Struktur mit farbcodierten Knotentypen, erweiterbaren Zweigen und detaillierten Eigenschaftsinformationen für jeden Knoten. Die gesamte Analyse erfolgt lokal in Ihrem Browser.
  • Sichere und private Code-Analyse: Ihr JavaScript-Quellcode verlässt niemals Ihr Gerät. Das gesamte Parsing, die Baumgenerierung und die AST-Analyse erfolgen vollständig in Ihrem Browser unter Verwendung von reinem JavaScript. Keine Uploads, kein Tracking, keine serverseitige Verarbeitung – vollständige Privatsphäre für den gesamten Code, den Sie analysieren.
  • JS AST Explorer Online – Keine Installation: Verwenden Sie den JavaScript AST Visualizer direkt in jedem modernen Browser, ohne dass Downloads, Apps oder Plugins erforderlich sind. Funktioniert nach dem ersten Laden offline und verarbeitet jede Größe von JavaScript-Eingaben. Für immer 100 % kostenlos, keine Anmeldung erforderlich.
  • Interaktive Baumnavigation und Filterung: Navigieren Sie durch komplexe AST-Bäume mit erweiterbaren/reduzierbaren Knoten, suchen Sie nach Knotentyp und zeigen Sie detaillierte Eigenschaften für jeden ausgewählten Knoten an. Farbcodierte Knotentypen erleichtern das Erkennen von Funktionsdeklarationen, Variablendeklarationen, Ausdrücken und mehr auf einen Blick.

Häufige Anwendungsfälle für JavaScript AST Visualizer

  • Analyse des JavaScript-Quellcodes: Entwickler verwenden den AST-Visualizer, um die Struktur des JavaScript-Quellcodes zu verstehen, indem sie dessen analysierte Baumdarstellung anzeigen. Sehen Sie, wie der Parser Ihren Code interpretiert, identifizieren Sie mehrdeutige Konstrukte und überprüfen Sie, ob Ihre Codestruktur Ihrer Absicht entspricht.
  • Reverse Engineering von verschleiertem Code: Sicherheitsforscher und Reverse Engineers verwenden den AST-Visualizer, um verschleierten JavaScript-Code zu analysieren. Durch die Betrachtung der analysierten Baumstruktur werden versteckte Muster, codierte Zeichenfolgen und Kontrollflussänderungen sichtbar, selbst wenn der Quellcode absichtlich verdeckt wird.
  • Programmieren – Bildung und Lernen: Schüler und Lehrer nutzen den JavaScript AST Visualizer, um zu lernen, wie JavaScript-Parser Code interpretieren. Die visuelle Baumdarstellung macht abstrakte Konzepte wie Heben, Umfang und Ausdrucksauswertung greifbar, indem sie genau zeigt, wie der Parser jedes Konstrukt strukturiert.
  • Code-Linting und Syntaxüberprüfung: Qualitätssicherungsingenieure verwenden den AST-Visualizer, um zu überprüfen, ob der Code syntaktisch gültig und wie erwartet strukturiert ist. Der analysierte Baum deckt Syntaxfehler, unerwartete Verschachtelungen und strukturelle Probleme auf, die beim direkten Lesen des Quellcodes möglicherweise übersehen werden.
  • Codetransformation und Toolentwicklung: Entwickler, die Codetransformationstools, Linters oder Minifier erstellen, verwenden den AST-Visualizer, um zu verstehen, wie ihr Zielcode analysiert wird. Sehen Sie sich die genauen Knotentypen, Positionen und Eigenschaften an, die vom Parser erzeugt werden, um genaue Transformationslogik zu schreiben.
  • Sicherheitsaudit und Schwachstellenanalyse: Sicherheitsprüfer verwenden den JavaScript AST Visualizer, um potenziell bösartigen Code zu analysieren. Der analysierte Baum enthüllt eval()-Aufrufe, dynamischen Eigenschaftszugriff, verdächtige Funktionskonstruktionen und andere Muster, die auf Code-Injection- oder Verschleierungsversuche hinweisen können.

Was ist ein JavaScript Abstract Syntax Tree (AST)?

Ein Abstract Syntax Tree (AST) ist eine Baumdarstellung der syntaktischen Struktur von JavaScript-Quellcode. Jeder Knoten im Baum stellt ein Konstrukt dar, das im Quellcode vorkommt – beispielsweise eine Funktionsdeklaration, Variablendeklaration, einen binären Ausdruck oder eine if-Anweisung. Die Baumstruktur erfasst die hierarchischen Beziehungen zwischen diesen Konstrukten und zeigt, welche Knoten anderen untergeordnet sind.

ASTs sind die Grundlage für die meisten Code-Analyse-Tools – Compiler, Linters (ESLint), Formatter (Prettier), Minifier (Terser) und Obfuscators funktionieren alle, indem sie Quellcode in einen AST analysieren, ihn transformieren und aus dem geänderten Baum neuen Code generieren. Unser JavaScript-AST-Visualizer macht diese interne Darstellung sichtbar und erforschbar und hilft Ihnen, genau zu verstehen, wie ein Parser Ihre Codestruktur interpretiert.

So funktioniert unser JavaScript AST Visualizer

  1. 1. Lexikalische Analyse (Tokenisierung): Das Tool zerlegt Ihren JavaScript-Quellcode zunächst in Token – die kleinsten sinnvollen Einheiten wie Schlüsselwörter (Funktion, Konstante, if), Bezeichner (Variablen- und Funktionsnamen), Operatoren (+, =, =>) und Satzzeichen ((, {',;). Jedes Token wird mit seinem Typ und seiner Position in der Quelle getaggt.
  2. 2. Syntaktisches Parsen: Der Token-Stream wird dann gemäß den JavaScript-Grammatikregeln analysiert, um den abstrakten Syntaxbaum zu erstellen. Der Parser erkennt Sprachkonstrukte wie Funktionsdeklarationen, Klassendefinitionen, Variablendeklarationen, Schleifen, Bedingungen und Ausdrücke und organisiert sie in einer hierarchischen Baumstruktur, in der übergeordnete Knoten untergeordnete Knoten enthalten, die ihre Bestandteile darstellen.
  3. 3. Baum-Rendering und Interaktion: Der analysierte AST wird als interaktiver zusammenklappbarer Baum gerendert. Jeder Knoten ist nach seiner Typkategorie (Deklarationen, Anweisungen, Ausdrücke, Muster) farblich gekennzeichnet. Wenn Sie auf einen Knoten klicken, werden seine detaillierten Eigenschaften angezeigt, einschließlich Typ, Position (Zeile/Spalte) und untergeordnete Referenzen. Sie können Zweige erweitern und reduzieren, nach Knotentyp suchen und die gesamte Baumstruktur erkunden.

Wichtige AST-Knotentypen und -Kategorien

  • Programm: Der Wurzelknoten, der die gesamte JavaScript-Datei darstellt. Enthält ein Body-Array mit allen Anweisungen der obersten Ebene, einschließlich Importen, Funktionsdeklarationen, Klassendeklarationen und Variablendeklarationen.
  • Deklarationen: Knoten, die benannte Konstrukte darstellen – FunctionDeclaration (Funktion mit Namen, Parametern, Körper), VariableDeclaration (const/let/var mit Deklaratoren), ClassDeclaration (Klasse mit Körper, SuperClass), ImportDeclaration und ExportDeclaration.
  • Anweisungen: Knoten, die ausführbare Anweisungen darstellen – ExpressionStatement, IfStatement, ForStatement, WhileStatement, ReturnStatement, TryStatement, SwitchStatement und mehr.
  • Ausdrücke: Knoten, die Werte und Operationen darstellen – BinaryExpression (a + b), CallExpression (foo()), MemberExpression (a.b), ArrowFunctionExpression, ArrayExpression, ObjectExpression, Literal, Identifier und TemplateLiteral.

Verwendung des AST Explorers für die Codeanalyse

Der JavaScript AST Visualizer ist ein unverzichtbares Werkzeug für alle, die mit Codeanalyse, -transformation oder -verschleierung arbeiten. Bei der Analyse von verschleiertem Code deckt der AST strukturelle Muster auf, die in der Quelle verborgen sind – codierte Zeichenfolgen erscheinen als CallExpression-Knoten mit bestimmten Argumentmustern, die Reduzierung des Kontrollflusses wird als SwitchStatement- oder WhileStatement-Wrapper angezeigt und die Injektion von totem Code erscheint als nicht erreichbare Zweige im Baum.

Zu Lernzwecken hilft der AST-Visualizer dabei, die Lücke zwischen der Art und Weise, wie Sie Code schreiben, und der Art und Weise, wie der Parser ihn interpretiert, zu schließen. Experimentieren Sie mit verschiedenen JavaScript-Konstrukten, um zu sehen, wie sie Baumknoten zugeordnet werden. Sie werden feststellen, wie Pfeilfunktionen im Vergleich zu regulären Funktionen unterschiedliche AST-Strukturen erzeugen oder wie durch Destrukturierung verschachtelte Musterknoten entstehen. Die gesamte Verarbeitung erfolgt lokal in Ihrem Browser, ohne dass Daten an externe Server gesendet werden.

Häufig gestellte Fragen

Ein JavaScript-AST-Visualizer ist ein Tool, das JavaScript-Quellcode analysiert und seinen Abstract Syntax Tree (AST) als interaktive, navigierbare Baumstruktur anzeigt. Es zeigt, wie der Parser Ihren Code interpretiert und ihn in Knoten aufteilt, die Funktionsdeklarationen, Variablendeklarationen, Ausdrücke, Anweisungen und andere Konstrukte darstellen, mit detaillierten Eigenschaften und Positionsinformationen für jeden Knoten.

Unser JavaScript-AST-Visualizer verwendet einen dedizierten Parser, der der ECMAScript-Spezifikationsgrammatik genau folgt. Es verarbeitet moderne JavaScript-Funktionen, einschließlich Pfeilfunktionen, Vorlagenliterale, Destrukturierung, Async/Await, Klassen, Module und ES6+-Syntax. Auch wenn es möglicherweise nicht jeden Randfall der vollständigen ECMAScript-Spezifikation abdeckt, analysiert es den Großteil des realen JavaScript-Codes, auf den Sie stoßen, genau.

Absolut. Die gesamte Analyse und AST-Generierung erfolgt vollständig in Ihrem Browser mit reinem JavaScript. Ihr Quellcode, egal ob es sich um proprietäre Algorithmen, verschleierte Skripte oder sensible Geschäftslogik handelt, verlässt niemals Ihr Gerät. Es werden keine Daten auf einen Server hochgeladen und der von Ihnen analysierte Code wird weder verfolgt noch gespeichert.

Ja, der AST-Visualizer ist ein wertvolles Werkzeug für das Reverse Engineering von verschleiertem JavaScript. Durch Anzeigen der analysierten Baumstruktur können Sie Verschleierungsmuster wie Kontrollflussverflachung (Switch-Anweisungen mit Dispatchern), codierte String-Payloads (Aufrufausdrücke mit bestimmten Argumentmustern), Dead-Code-Injection (nicht erreichbare Zweige) und Array-basierte String-Ersetzungen identifizieren. Mithilfe des visuellen Baums sind diese Muster viel einfacher zu erkennen, als wenn man die Quelle direkt liest.

Der AST-Explorer unterstützt über 30 Knotentypen, die den gesamten Bereich der JavaScript-Syntax abdecken. Dazu gehören Program, FunctionDeclaration, VariableDeclaration, ClassDeclaration, ImportDeclaration, ExportDeclaration, IfStatement, ForStatement, WhileStatement, ReturnStatement, TryStatement, BinaryExpression, CallExpression, MemberExpression, ArrowFunctionExpression, ArrayExpression, ObjectExpression, TemplateLiteral, Literal, Identifier und viele mehr. Zur leichteren Identifizierung hat jeder Knotentyp im Baum eine eigene Farbe.

Jeder AST-Knoten zeigt seinen Typ (die Art des Konstrukts), seine Position (Start- und Endzeile/Spalte in der Quelle) und typspezifische Eigenschaften an. Beispielsweise zeigt ein FunctionDeclaration-Knoten den Funktionsnamen, das Params-Array und die Textreferenz an. Ein BinaryExpression zeigt den Operator und die linken/rechten Operanden. Ein Literal zeigt den Rohwert und den analysierten Wert. Diese Eigenschaften stellen die genauen Informationen dar, die ein Compiler oder Transformer bei der Verarbeitung des Codes verwenden würde.

Der AST-Visualizer ist hauptsächlich für Standard-JavaScript (ES2015/ES6+) konzipiert. Obwohl es die meisten modernen JavaScript-Funktionen verarbeitet, wird die TypeScript-spezifische Syntax (Typanmerkungen, Schnittstellen, Aufzählungen) und die JSX-Syntax möglicherweise nicht korrekt analysiert. Entfernen Sie für die TypeScript- oder JSX-Analyse Typanmerkungen und JSX-Tags vor dem Parsen oder verwenden Sie einen TypeScript-spezifischen AST-Explorer.

Der Baum-Viewer bietet reduzierbare Knoten, sodass Sie nur die Zweige erweitern können, die Sie interessieren. Sie können Knoten mithilfe der Such-/Filtereingabe auch nach Typ filtern. Geben Sie einen Knotentypnamen wie FunctionDeclaration oder VariableDeclaration ein, um übereinstimmende Knoten hervorzuheben. Große Bäume können durch progressive Offenlegung automatisch verwaltet werden. Beginnen Sie mit der Erweiterung des Hauptteils der obersten Ebene und gehen Sie dann genauer auf bestimmte Deklarationen und Ausdrücke ein.

Ja, unser JavaScript-AST-Visualizer ist 100 % kostenlos und ohne versteckte Kosten oder Einschränkungen. Es ist keine Anmeldung erforderlich, keine Premium-Stufe, keine Nutzungsbeschränkungen, keine Dateigrößenbeschränkungen und keine Werbung. Nutzen Sie es unbegrenzt oft für jedes persönliche oder kommerzielle Projekt. Die gesamte Analyse und Visualisierung erfolgt lokal in Ihrem Browser.