¿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?
Respuesta
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?
Esta es probablemente la mejor descripción de lo que es un navegador de acuerdo con el estándar ECMAScript Javascript Closures: Identifier Resolution, Execution Contexts and scope chains
- 1. Cómo depurar código JavaScript con navegadores móviles
- 2. ¿Hay otras secuencias que los navegadores interpretan como caracteres especiales HTML?
- 3. Idiomas que se interpretan en Javascript?
- 4. ¿Cómo interpretan las máquinas el binario?
- 5. ¿Cómo se analizan los archivos XML?
- 6. ¿Cómo se analizan los atributos en Boost.PropertyTree?
- 7. javascript reemplazar selección todos los navegadores
- 8. ¿Por qué los navegadores permiten desactivar Javascript?
- 9. ¿Cómo funciona la memoria JavaScript en los navegadores?
- 10. AJAX/jQuery XML analizan
- 11. Integración continua/Prueba de código Javascript contra diferentes navegadores
- 12. ¿Cómo se analizan las fechas en GWT?
- 13. ¿Los rastreadores de Google interpretan Javascript? ¿Qué sucede si cargo una página a través de AJAX?
- 14. ¿Cómo se analizan los encabezados HTTP con libcurl?
- 15. ¿Los navegadores no actualizan los cambios de código?
- 16. ¿Cómo se analizan las plantillas de django?
- 17. ¿Cómo se analizan los lenguajes de plantillas en Ragel?
- 18. ¿Cómo se analizan los valores en YAML en Java?
- 19. ¿Cómo se analizan los caracteres numéricos kanji con ICU?
- 20. Cómo evitar el almacenamiento en caché de los resultados de Ajax/javascript en los navegadores?
- 21. ¿Cómo se analizan los valores hexadecimales en un uint?
- 22. Copiar al portapapeles para todos los navegadores usando javascript
- 23. ¿Cómo manejan los navegadores rgb (porcentaje) los navegadores? para los números extraños
- 24. interpretan como no firmada firmado
- 25. Acceso de JavaScript al corrector ortográfico en los navegadores
- 26. ¿Cómo resuelven los navegadores las clases conflictivas?
- 27. Cómo evaluar el código Javascript en Python
- 28. Cómo proteger el código Javascript?
- 29. cómo ocultar el código Javascript
- 30. Convertir nodejs 'Buffer en navegadores' javascript
Los distintos navegadores utilizan diferentes motores de java script, como el V8, o mono araña. – Incognito
Imagino que siguen algunos estándares. Hay algunas similitudes. –
El código de JavaScript se interpreta, no se analiza. –