2011-09-21 2 views
14

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?

+1

Différents navigateurs utilisent différents moteurs de script java, comme V8, ou singe araignée. – Incognito

+0

J'imagine qu'ils suivent une certaine norme. Il y a quelques similitudes. –

+0

Le code JavaScript est interprété et non analysé. –

Répondre

15

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?

Questions connexes