Comment un navigateur traite-t-il l'analyse syntaxique de JavaScript qu'il charge à partir de fichiers ou en ligne? J'essaie d'aller au cœur de ce que fait un navigateur. Qu'est-ce qui se passe quand une page se charge et il a <script>
références à des fichiers externes, et le JavaScript réel sur la page aussi. Des bons articles là-bas?Comment les navigateurs analysent-ils et interprètent-ils le code JavaScript?
Répondre
Ceci est défini dans la norme ECMAScript.
D'abord le texte source (la substance entre les <script>
tags) est converti en une série de jetons (selon la lexicales Grammaire de la langue):
Le texte source d'un programme d'ECMAScript est d'abord converti en une séquence d'éléments d'entrée , qui sont des jetons, des terminaisons de ligne, des commentaires ou des espaces blancs. Le texte source est numérisé de gauche à à droite, en prenant à plusieurs reprises la séquence de caractères la plus longue possible comme élément d'entrée suivant.
Lire ici: http://es5.github.com/#x7
Cette série de jetons est traitée comme un programme, qui est ensuite évalué selon la Syntactic Grammaire de la langue qui est défini dans les chapitres 11 à 14 de la norme ECMAScript .
La grammaire syntaxique pour ECMAScript est donné dans les articles 11, 12, 13 et 14. Cette grammaire est ECMAScript jetons définis par la grammaire lexical que ses symboles terminaux (5.1.2). Il définit un ensemble de productions , à partir du programme de symbole de but, qui décrit comment des séquences de jetons peuvent former des programmes ECMAScript syntaxiquement corrects.
Lire ici: http://es5.github.com/#x5.1.4
Il commence au chapitre 14: http://es5.github.com/#x14
Notez que chaque élément <script>
représente un programme JavaScript distinct.
Lire ici: How many JavaScript programs are executed for a single web-page in the browser?
Ceci est probablement la meilleure description de ce qu'est un navigateur selon la norme ECMAScript Javascript Closures: Identifier Resolution, Execution Contexts and scope chains
- 1. Comment déboguer le code JavaScript avec les navigateurs mobiles
- 2. Navigateurs mobiles et JavaScript
- 3. Comment détecter cookie et javascript avec les navigateurs
- 4. désactiver le javascript sur les navigateurs
- 5. Comment faire fonctionner le code jquery dans tous les navigateurs?
- 6. Le code JavaScript ne fonctionnera pas sur certains navigateurs
- 7. Comment cacher le HTML pour les navigateurs non compatibles JavaScript?
- 8. Détecter les navigateurs JavaScript désactivés et les séparer des sites?
- 9. JavaScript et jQuery problème de défilement dans tous les navigateurs
- 10. Gestion des clés JavaScript et compatibilité avec les navigateurs
- 11. Où les navigateurs stockent-ils le Javascript téléchargé dynamiquement?
- 12. Javascript date d'émission entre les navigateurs
- 13. Gestion des cookies PHP et Javascript - différents entre les navigateurs
- 14. Javascript: détecter $ -fonctionner dans tous les navigateurs
- 15. JavaScript et __proto__ - quels navigateurs l'utilisent?
- 16. Javascript obtenir et définir la disponibilité dans les navigateurs
- 17. javascript remplace la sélection tous les navigateurs
- 18. Versions javascript et javascript des navigateurs web fonctionnels
- 19. Supprimer le cache des navigateurs en javascript
- 20. Les navigateurs ne peuvent pas lire le fichier javascript
- 21. Comment capturer les URL visitées et leur code html par les navigateurs
- 22. comment cacher le code javascript
- 23. Comment les navigateurs traitent-ils plusieurs balises javascript?
- 24. Les navigateurs propagent-ils les variables javascript entre les onglets?
- 25. Générez et chargez le vidage JSON dans les navigateurs modernes?
- 26. Comment afficher l'info-bulle dans les navigateurs chrome et safari
- 27. Quels navigateurs ne supportent pas location.href et comment le traiter?
- 28. Ie ignorer les fichiers javascript ou le code en général
- 29. Comment simplifier le code javascript
- 30. Comment mettre le code javascript dans un autre code javascript
Différents navigateurs utilisent différents moteurs de script java, comme V8, ou singe araignée. – Incognito
J'imagine qu'ils suivent une certaine norme. Il y a quelques similitudes. –
Le code JavaScript est interprété et non analysé. –