Saltar al contenido
Aback Tools Logo

Visualizador y explorador de JavaScript AST

Analice y explore el código JavaScript como un árbol de sintaxis abstracta interactivo. Pegue o cargue cualquier código JS para ver su estructura de árbol analizada con tipos de nodos codificados por colores, ramas expandibles, propiedades detalladas y filtrado de tipos de nodos. Perfecto para comprender la estructura del código, analizar scripts ofuscados y aprender cómo funcionan los analizadores de JavaScript.

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

¿Por qué utilizar nuestro visualizador AST de JavaScript?

  • Visualización AST instantánea: analice cualquier código JavaScript y visualice su árbol de sintaxis abstracta instantáneamente como un árbol interactivo. Pegue o cargue código JS y vea inmediatamente la estructura analizada con tipos de nodos codificados por colores, ramas expandibles e información detallada de propiedades para cada nodo. Todo el análisis se realiza localmente en su navegador.
  • Análisis de código seguro y privado: su código fuente JavaScript nunca sale de su dispositivo. Todo el análisis, la generación de árboles y el análisis AST se realizan completamente en su navegador utilizando JavaScript puro. Sin cargas, sin seguimiento, sin procesamiento del lado del servidor: privacidad total para todo el código que analice.
  • JS AST Explorer Online - Sin instalación: utilice el visualizador AST de JavaScript directamente en cualquier navegador moderno sin necesidad de descargas, aplicaciones ni complementos. Funciona sin conexión después de la primera carga y maneja cualquier tamaño de entrada de JavaScript. 100% gratis para siempre sin necesidad de registrarse.
  • Navegación y filtrado de árboles interactivos: navegue por árboles AST complejos con nodos expandibles/contraíbles, busque por tipo de nodo y vea propiedades detalladas de cualquier nodo seleccionado. Los tipos de nodos codificados por colores facilitan la identificación de declaraciones de funciones, declaraciones de variables, expresiones y más de un vistazo.

Casos de uso comunes para el visualizador AST de JavaScript

  • Análisis del código fuente de JavaScript: los desarrolladores utilizan el visualizador AST para comprender la estructura del código fuente de JavaScript al ver su representación de árbol analizada. Vea cómo el analizador interpreta su código, identifique construcciones ambiguas y verifique que la estructura de su código coincida con su intención.
  • Ingeniería inversa de código ofuscado: los investigadores de seguridad y los ingenieros inversos utilizan el visualizador AST para analizar el código JavaScript ofuscado. Al ver la estructura de árbol analizada, los patrones ocultos, las cadenas codificadas y las modificaciones del flujo de control se vuelven visibles incluso cuando el código fuente se oculta intencionalmente.
  • Educación y aprendizaje de programación: los estudiantes y educadores utilizan el visualizador AST de JavaScript para aprender cómo los analizadores de JavaScript interpretan el código. La representación visual del árbol hace tangibles conceptos abstractos como elevación, alcance y evaluación de expresiones al mostrar exactamente cómo el analizador estructura cada construcción.
  • Código Linting y verificación de sintaxis: los ingenieros de control de calidad utilizan el visualizador AST para verificar que el código sea sintácticamente válido y esté estructurado como se esperaba. El árbol analizado revela errores de sintaxis, anidamientos inesperados y problemas estructurales que podrían pasarse por alto al leer el código fuente directamente.
  • Transformación de código y desarrollo de herramientas: los desarrolladores que crean herramientas de transformación de código, linters o minificadores utilizan el visualizador AST para comprender cómo se analizará su código de destino. Vea los tipos de nodos, las posiciones y las propiedades exactas producidas por el analizador para escribir una lógica de transformación precisa.
  • Auditoría de seguridad y análisis de vulnerabilidad: los auditores de seguridad utilizan el visualizador AST de JavaScript para analizar código potencialmente malicioso. El árbol analizado revela llamadas a eval(), acceso a propiedades dinámicas, construcciones de funciones sospechosas y otros patrones que pueden indicar inyección de código u intentos de ofuscación.

¿Qué es un árbol de sintaxis abstracta de JavaScript (AST)?

Un árbol de sintaxis abstracta (AST) es una representación en árbol de la estructura sintáctica del código fuente JavaScript. Cada nodo en el árbol representa una construcción que ocurre en el código fuente, como una declaración de función, una declaración de variable, una expresión binaria o una declaración if. La estructura de árbol captura las relaciones jerárquicas entre estas construcciones, mostrando qué nodos son hijos de otros.

Los AST son la base de la mayoría de las herramientas de análisis de código: compiladores, linters (ESLint), formateadores (Prettier), minificadores (Terser) y ofuscadores funcionan analizando el código fuente en un AST, transformándolo y generando nuevo código a partir del árbol modificado. Nuestro visualizador AST de JavaScript hace que esta representación interna sea visible y explorable, lo que le ayuda a comprender exactamente cómo un analizador interpreta la estructura de su código.

Cómo funciona nuestro visualizador AST de JavaScript

  1. 1. Análisis léxico (tokenización): la herramienta primero divide el código fuente de JavaScript en tokens: las unidades significativas más pequeñas, como palabras clave (función, const, if), identificadores (nombres de variables y funciones), operadores (+, =, =>) y puntuación ((, {',;). Cada token está etiquetado con su tipo y posición en la fuente.
  2. 2. Análisis sintáctico: luego, el flujo de tokens se analiza de acuerdo con las reglas gramaticales de JavaScript para construir el árbol de sintaxis abstracta. El analizador reconoce construcciones del lenguaje como declaraciones de funciones, definiciones de clases, declaraciones de variables, bucles, condicionales y expresiones, organizándolas en una estructura de árbol jerárquica donde los nodos principales contienen nodos secundarios que representan sus partes constituyentes.
  3. 3. Interacción y representación del árbol: el AST analizado se representa como un árbol plegable interactivo. Cada nodo está codificado por colores según su categoría de tipo (declaraciones, declaraciones, expresiones, patrones) y al hacer clic en un nodo se revelan sus propiedades detalladas, incluido el tipo, la posición (línea/columna) y las referencias secundarias. Puede expandir y contraer ramas, buscar por tipo de nodo y explorar la estructura de árbol completa.

Tipos y categorías de nodos AST clave

  • Programa: el nodo raíz que representa todo el archivo JavaScript. Contiene una matriz de cuerpo con todas las declaraciones de nivel superior, incluidas importaciones, declaraciones de funciones, declaraciones de clases y declaraciones de variables.
  • Declaraciones: Nodos que representan construcciones con nombre: FunctionDeclaration (función con nombre, parámetros, cuerpo), VariableDeclaration (const/let/var con declaradores), ClassDeclaration (clase con cuerpo, superClass), ImportDeclaration y ExportDeclaration.
  • Declaraciones: nodos que representan declaraciones ejecutables: ExpressionStatement, IfStatement, ForStatement, WhileStatement, ReturnStatement, TryStatement, SwitchStatement y más.
  • Expresiones: nodos que representan valores y operaciones: BinaryExpression (a + b), CallExpression (foo()), MemberExpression (a.b), ArrowFunctionExpression, ArrayExpression, ObjectExpression, Literal, Identifier y TemplateLiteral.

Uso de AST Explorer para análisis de código

El visualizador AST de JavaScript es una herramienta esencial para cualquiera que trabaje con análisis, transformación u ofuscación de código. Al analizar el código ofuscado, el AST revela patrones estructurales que están ocultos en el código fuente: las cadenas codificadas aparecen como nodos CallExpression con patrones de argumentos específicos, el aplanamiento del flujo de control se muestra como envoltorios SwitchStatement o WhileStatement, y la inyección de código inactivo aparece como ramas inalcanzables en el árbol.

Con fines de aprendizaje, el visualizador AST ayuda a cerrar la brecha entre cómo se escribe el código y cómo lo interpreta el analizador. Experimente con diferentes construcciones de JavaScript para ver cómo se asignan a los nodos del árbol; notará cómo las funciones de flecha frente a las funciones regulares producen diferentes estructuras AST, o cómo la desestructuración crea nodos de patrón anidados. Todo el procesamiento se realiza localmente en su navegador sin enviar datos a servidores externos.

Preguntas frecuentes

Un visualizador de JavaScript AST es una herramienta que analiza el código fuente de JavaScript y muestra su árbol de sintaxis abstracta (AST) como una estructura de árbol interactiva y navegable. Muestra cómo el analizador interpreta su código, dividiéndolo en nodos que representan declaraciones de funciones, declaraciones de variables, expresiones, declaraciones y otras construcciones, con propiedades detalladas e información de posición para cada nodo.

Nuestro visualizador JavaScript AST utiliza un analizador dedicado que sigue de cerca la gramática de la especificación ECMAScript. Maneja características modernas de JavaScript que incluyen funciones de flecha, literales de plantilla, desestructuración, asíncrono/espera, clases, módulos y sintaxis ES6+. Si bien es posible que no cubra todos los casos extremos de la especificación ECMAScript completa, analiza con precisión la gran mayoría del código JavaScript del mundo real que encontrará.

Absolutamente. Todo el análisis y la generación de AST se realizan completamente en su navegador utilizando JavaScript puro. Su código fuente, ya sean algoritmos propietarios, scripts ofuscados o lógica empresarial confidencial, nunca abandona su dispositivo. No se cargan datos en ningún servidor y no hay seguimiento ni almacenamiento de ningún código que analice.

Sí, el visualizador AST es una herramienta valiosa para realizar ingeniería inversa en JavaScript ofuscado. Al ver la estructura de árbol analizada, puede identificar patrones de ofuscación como aplanamiento del flujo de control (declaraciones de cambio con despachadores), cargas útiles de cadenas codificadas (expresiones de llamada con patrones de argumentos específicos), inyección de código inactivo (ramas inalcanzables) y reemplazos de cadenas basados ​​en matrices. El árbol visual hace que estos patrones sean mucho más fáciles de detectar que leer la fuente directamente.

El explorador AST admite más de 30 tipos de nodos que cubren toda la gama de sintaxis de JavaScript. Estos incluyen Program, FunctionDeclaration, VariableDeclaration, ClassDeclaration, ImportDeclaration, ExportDeclaration, IfStatement, ForStatement, WhileStatement, ReturnStatement, TryStatement, BinaryExpression, CallExpression, MemberExpression, ArrowFunctionExpression, ArrayExpression, ObjectExpression, TemplateLiteral, Literal, Identifier y muchos más. Cada tipo de nodo tiene un color distinto en el árbol para una fácil identificación.

Cada nodo AST muestra su tipo (el tipo de construcción), posición (línea/columna inicial y final en la fuente) y propiedades específicas del tipo. Por ejemplo, un nodo FunctionDeclaration muestra el nombre de la función, la matriz de parámetros y la referencia del cuerpo. Una BinaryExpression muestra el operador y los operandos izquierdo/derecho. Un literal muestra el valor bruto y el valor analizado. Estas propiedades representan la información exacta que un compilador o transformador usaría al procesar el código.

El visualizador AST está diseñado principalmente para JavaScript estándar (ES2015/ES6+). Si bien maneja la mayoría de las funciones modernas de JavaScript, es posible que la sintaxis específica de TypeScript (anotaciones de tipo, interfaces, enumeraciones) y la sintaxis JSX no se analicen correctamente. Para el análisis de TypeScript o JSX, elimine las anotaciones de tipo y las etiquetas JSX antes del análisis, o utilice un explorador AST dedicado a TypeScript.

El visor de árbol proporciona nodos plegables para que pueda expandir solo las ramas que le interesan. También puede filtrar nodos por tipo usando la entrada de búsqueda/filtro: escriba un nombre de tipo de nodo como FunctionDeclaration o VariableDeclaration para resaltar los nodos coincidentes. Los árboles grandes se pueden gestionar automáticamente mediante la divulgación progresiva: comience expandiendo el cuerpo de nivel superior y luego profundice en declaraciones y expresiones específicas.

Sí, nuestro visualizador JavaScript AST es 100% gratuito, sin costos ni limitaciones ocultos. No es necesario registrarse, ni nivel premium, ni límites de uso, ni restricciones de tamaño de archivo ni publicidad. Úselo ilimitadamente para cualquier proyecto personal o comercial. Todo el análisis y la visualización se realizan localmente en su navegador.