2011-09-21 18 views
14

¿Cómo funciona un navegador al analizar JavaScript que carga desde archivos o en línea? Estoy tratando de llegar al núcleo de lo que hace un navegador. Lo que sucede cuando una página se carga y tiene referencias <script> a archivos externos, y JavaScript real en la página también. ¿Hay buenos artículos por ahí?¿Cómo analizan e interpretan los navegadores el código JavaScript?

+1

Los distintos navegadores utilizan diferentes motores de java script, como el V8, o mono araña. – Incognito

+0

Imagino que siguen algunos estándares. Hay algunas similitudes. –

+0

El código de JavaScript se interpreta, no se analiza. –

Respuesta

15

Esto se define en el estándar ECMAScript.

En primer lugar el texto de origen (la materia entre las <script> etiquetas) se convierte en una serie de fichas (de acuerdo con el Léxico Gramática de la lengua):

El texto fuente de un programa de ECMAScript es primero se convierte en una secuencia de elementos de entrada, que son tokens, terminadores de línea, comentarios , o espacio en blanco. El texto de origen se escanea de la izquierda a a la derecha, tomando repetidamente la secuencia más larga posible de caracteres como el siguiente elemento de entrada.

leer aquí: http://es5.github.com/#x7

Esa serie de fichas se trata como un programa, el cual es evaluado entonces según la sintáctica Gramática de la lengua que se define en los capítulos 11 a 14 de la norma ECMAScript .

La gramática sintáctica para ECMAScript se da en las cláusulas 11, 12, 13 y 14. Esta gramática ha ECMAScript tokens definidos por el léxico gramática como sus símbolos terminales (5.1.2). Define un conjunto de producciones , comenzando por el símbolo del objetivo Programa, que describe cómo las secuencias de tokens pueden formar sintácticamente programas ECMAScript correctos sintácticamente.

leer aquí: http://es5.github.com/#x5.1.4

Se inicia en el capítulo 14: http://es5.github.com/#x14


Tenga en cuenta que cada elemento representa <script> un programa JavaScript separado.
leer aquí: How many JavaScript programs are executed for a single web-page in the browser?

Cuestiones relacionadas