Comprende JS: Syntax Parser

Bruno Pineda
sngular-devs
Published in
3 min readOct 9, 2018

Parte VII de la serie Comprende JS

Continuamos con esta serie y ahora veremos un tema que no podemos dejar de lado, cuando hablamos de Javascript y es que mucho hemos mencionado el contexto de ejecución y sus fases, así como también del motor de Javascript, pero no hemos entrado en una parte fundamental que justamente esta alrededor de estos temas y es ver que es el…

Syntax parser

Bien, como lo mencione antes, ya sabemos que en el contexto de ejecución se divide en dos fases, creación y ejecución, y también sabemos lo que sucede cuando un contexto es creado y ejecutado, pero no hemos entrado en el detalle del proceso de ejecución, donde linea por linea se lee el código escrito en nuestro Lexical environment y es ahí justamente en este proceso de ejecución donde entra el Syntax parser del motor de JS, el cual es el encargado de traducir nuestro código y validar con los estándares disponibles (ej. ES6) dependiendo cada motor, es decir, como cada navegador tiene un motor distinto cada navegador tiene distintos estándares de Javascript y justamente por eso que no todo es compatible con todos los navegadores.

El Syntax parser en general es quien lee carácter por carácter, formado palabras y traduciendo o entendiendo que orden queremos ejecutar, así como determinar si la sintaxis es correcta o errónea de acuerdo a los estándares que tenga dicho motor, cuando este termina de validar es entonces cuando la instrucción pasa a nuestro motor para procesarla.

Antes de ver un ejemplo de un error común que detecta el Sytax parser, comprendamos…

Automatic semicolon y Whitespaces

Alguna vez escuche a alguien decir, que en Javascript los punto y coma ya no son necesarios u obligatorios… tremendo error.

Tal vez para el desarrollador ya no es obligatorio incluir el “semicolon”, ya que poniéndolo o no, nos permite compilar, pero esto no significa que no sea necesario, pues el Syntax parser es quien lo hace por nosotros en caso de omitir el punto y coma.

Cuando el Syntax parser lee cada carácter de nuestro código, a través de los estándares como “ECMAScript” sabe predecir la siguiente palabra o instrucción esperada y es por esto, que cuando el Syntax parser, detecta caracteres que no espera nos manda algo como esto unexpected token x, entonces cuando cuando detecta un whitespace como CR-LF es decir un salto de linea con retorno de carro, es cuando el Syntax parser actúa y en caso de no encontrar un punto y coma (;) lo coloca por nosotros, consideremos ahora si, el siguiente ejemplo.

Como vemos en el código anterior nos retorna un undefined, debido a que justo después del return, el Syntax parser detecta un whitespace en este caso un salto de linea y al no detectar un punto y coma en ese lugar, lo coloca por nosotros quedando return;.

Conclusión

Es importante prestar atención a estos detalles, es cierto que ya no estamos obligados a poner nosotros el punto y coma, pero no nos fiemos del todo, ya que puede llegar a convertirse en otro…

Error fácil de resolver, difícil de detectar.

<< episodio anterior || episodio siguiente >>

--

--