La structure lexicale d'un langage de programmation est un ensemble de règles de base qui décrivent la façon dont vous écrivez le langage. Comme base de la syntaxe, il stipule à quoi ressemblent les noms de variables, comment écrire des commentaires et comment distinguer les instructions. Cette section utilise un espace très court pour présenter la structure lexicale de JavaScript.
1. Jeu de caractères
Les programmes Javascript sont écrits à l'aide du jeu de caractères Unicode, qui est un sur-ensemble d'ASCII et de Latin-1 et prend en charge presque toutes les langues de la région. ECMAscript3 nécessite que l'implémentation de javascript prenne en charge Unicode2,1 et les versions ultérieures, et ECMAscript5 nécessite la prise en charge d'Unicode3 et des versions ultérieures
i. Sensible à la casse
Javascript est un langage sensible à la casse, ce qui signifie que les mots-clés, les variables, les noms de fonctions et tous les caractères d'expression doivent être en majuscules et minuscules cohérentes. Par exemple, le mot-clé while doit être écrit sous la forme while, et non While ou WHILE.
Mais il convient de noter que le HTML n'est pas sensible à la casse (bien que le xhtml le soit). Puisqu'il est étroitement lié au javascript côté client, il est facile de se tromper. Par exemple, dans l'événement de traitement défini en HTML, l'attribut onclick peut être écrit sous la forme onClick, mais en JavaScript, onclick est écrit en minuscules.
ii Contrôles d'espace, de nouvelle ligne et de format
Javascript ignorera les espaces entre les jetons dans le programme. Dans la plupart des cas, JavaScript ignorera également les nouvelles lignes. Étant donné que les espaces et les sauts de ligne peuvent être utilisés librement dans le code, une indentation nette et cohérente peut être utilisée pour former un style de codage unifié et améliorer la lisibilité du code.
Javascript reconnaît le caractère espace (u0020) en plus de celui-ci. JavaScript représente également les caractères suivants qui marquent les espaces : tabulation horizontale (u0009), tabulation verticale (u000B), saut de page (u000C), espace insécable (u00A0), marque d'ordre des octets (uFEFF) et dans Tous les caractères de la catégorie Zs dans Unicode. JavaScript reconnaît les caractères suivants comme terminateurs : saut de ligne (u000A), retour chariot (u000D), séparateur de ligne (u2028) et séparateur de paragraphe (u2029). Le caractère de retour chariot et le caractère de saut de ligne sont analysés ensemble en un seul terminateur de ligne.
Les caractères de contrôle au format Unicode (classe Cf), tels que « marque d'écriture de droite à gauche » (u200F) et « marque d'écriture de gauche à droite » (u200E), contrôlent l'affichage visuel du texte. Ceci est crucial pour l'affichage correct de certains textes non anglais. Ces caractères peuvent être utilisés dans les commentaires JavaScript, les littéraux de chaîne et les littéraux d'expressions régulières, mais pas dans les identifiants (par exemple, les noms de variables, à l'exception de la largeur nulle). connecteur (u200D) et non-connecteur de largeur nulle (uFEFF), qui sont des caractères manuels qui peuvent apparaître dans les identifiants mais ne peuvent pas être utilisés comme identifiants. Comme mentionné ci-dessus, le caractère de contrôle du format de la marque d'ordre des octets (uFEFF) est traité comme un espace
iii.Séquence d'échappement Unicode
Dans certains matériels et logiciels informatiques, l'ensemble complet des caractères Unicode ne peut pas être affiché ou saisi. Afin de prendre en charge les programmeurs qui utilisent des technologies plus anciennes, JavaScript définit une séquence spéciale qui utilise 6 caractères ASCII pour représenter tout code interne Unicode 16 bits. Ces séquences d'échappement Unicode sont préfixées par u suivi de la souris hexadécimale (représentée par des chiffres et des lettres majuscules et minuscules A-F). Cette méthode d'écriture d'échappement Unicode peut être utilisée dans les littéraux de chaîne JavaScript, les expressions régulières et les identifiants (à l'exception des mots-clés). Par exemple, la méthode d'écriture d'échappement Unicode du caractère é est u00E9, et les deux chaînes Javascript suivantes sont exactement les mêmes.
"café" === "cafu00e9" => vrai
L'écriture d'échappement Unicode peut apparaître dans les commentaires, mais comme JavaScript ignore les commentaires, ils ne sont traités que comme des caractères ascii dans le contexte et ne seront pas suivis des caractères Unicode correspondants
iiii standardisation
Unicode permet à plusieurs méthodes d'encoder le même caractère. Par exemple, le caractère é peut utiliser le caractère Unicode u00E9, ou le caractère ascii ordinaire e suivi d'une marque d'intonation u0301. Dans l'éditeur de texte, les résultats affichés par ces deux codages sont exactement les mêmes, mais leurs représentations de codage binaire sont différentes. . La même chose est vraie dans les ordinateurs. La norme Unicode définit un format de code préféré pour les caractères d'index et fournit une méthode de traitement standardisée pour convertir le texte dans un format standard adapté à la comparaison. Elle ne normalisera pas d'autres représentations, chaînes ou expressions régulières.
2. Remarques
Javascript prend en charge deux méthodes de commentaire. Le texte après la fin de la ligne "//" sera ignoré par JavaScript en tant que commentaire.
De plus, le texte entre /* et */ sera également traité comme des commentaires. Ce type de commentaire peut être écrit sur plusieurs lignes, mais il ne peut pas y avoir de commentaires imbriqués.
//Commentaire sur une seule ligne
/*
*
*
*
*/
3. Mesure directe
Les soi-disant littéraux sont des valeurs de données utilisées directement dans le programme. Les quantités littérales sont répertoriées ci-dessous
.{x:1,y:2} //Objet
[1,2,3,4,5] //Tableau
4. Identifiants et mots réservés
Un identifiant est un nom. En JavaScript, les identifiants sont utilisés pour nommer des variables et des fonctions, ou pour marquer des emplacements de saut dans certaines instructions de boucle dans le code JavaScript. Les identifiants JavaScript doivent commencer par des lettres. Commencez par un trait de soulignement ou un signe dollar. Les caractères suivants peuvent être des lettres. nombre. Tiret de soulignement ou signe dollar (les chiffres ne sont pas autorisés à apparaître comme première lettre, JavaScript peut facilement distinguer les identifiants et les chiffres), les identifiants suivants sont légaux
mots réservés javascript
exportation d'énumération de const de classe
l'exportation étend le super importation
De plus, ces mots-clés sont légaux en javascript normal, mais sont des mots réservés en mode strict
implémente le package d'interface de rendement public privé
statique protégé
Dans le même mode strict, des restrictions strictes sont placées sur les identifiants suivants, mais les noms de variables, les noms de paramètres et les noms de fonctions ne peuvent pas être utilisés.
évaluation des arguments
L'implémentation spécifique de JavaScript peut définir des variables et des fonctions globales uniques. Chaque serveur d'environnement d'exécution (client) JavaScript spécifique, etc., possède sa propre liste d'attributs globaux, qu'il convient de garder à l'esprit. (objet fenêtre pour comprendre les variables globales et la liste de fonctions définies dans le client javascript)
5. Point-virgule facultatif
Comme de nombreux langages de programmation, JavaScript utilise des points-virgules (;) pour séparer les instructions. Ceci est très important pour améliorer la lisibilité et la netteté du code. Sans séparateur, la fin d’une instruction devient le début de l’instruction suivante, et vice versa.
En JavaScript, chaque instruction se trouve sur sa propre ligne et le point-virgule entre les instructions peut généralement être omis (le point-virgule avant l'accolade "}" à la fin du programme peut également être omis). De nombreux programmeurs JavaScript (y compris les exemples de code de ce livre) utilisent un point-virgule pour marquer clairement la fin d'une instruction, même lorsque le point-virgule n'est pas exactement nécessaire. Un autre style consiste à utiliser un point-virgule chaque fois que le point-virgule peut être omis. utilisez des points-virgules uniquement lorsque cela est nécessaire. Quel que soit votre style de programmation, vous devez prendre en compte plusieurs détails concernant JavaScript.
Dans le code suivant, le premier point-virgule peut être omis
a=3;
b=4;
Mais s’il est écrit dans le format suivant, le premier point-virgule ne peut être omis.
a=3;b=4;
Il convient de noter que JavaScript ne remplit pas du tout les points-virgules : JavaScript remplira les points-virgules uniquement lorsque le code ne peut pas être analysé normalement sans point-virgule. En d'autres termes (similaire aux deux endroits du code ci-dessous Exception), si. l'instruction actuelle et les caractères non-espaces suivants ne peuvent pas être analysés dans leur ensemble, JavaScript remplira le point-virgule à la fin de l'instruction actuelle, regardez le code suivant
var a
une
=
3
console.log(a)
javascript l'analyse comme
var a;a=3;console.log(a);
JavaScript ajoute un point-virgule à la première ligne. Sans le point-virgule, JavaScript ne peut pas analyser var a a dans le code. Le deuxième a peut être considéré comme une instruction « a; » seule, mais JavaScript ne remplit pas le point-virgule à la fin de la deuxième ligne. Parce qu'il peut être analysé en "a=3;" avec la troisième ligne de contenu.
var y = x f
(a b).toString()
Les parenthèses dans la deuxième ligne et le f dans la première ligne forment un appel de fonction. JavaScript considérera ce code comme
.
Ce n'est évidemment pas l'intention du code. Afin d'analyser le code ci-dessus en deux instructions différentes, le point-virgule d'affichage du comportement doit être rempli manuellement
Si l'instruction actuelle et la ligne d'instructions suivante ne peuvent pas être combinées et analysées. JavaScript complète ensuite le point-virgule après la première ligne, ce qui est la règle générale, sauf pour deux colonnes. La première exception concerne les instructions returnm, birak et continue, si ces trois mots-clés sont suivis d'une nouvelle ligne. JavaScript remplira les points-virgules aux sauts de ligne. Par exemple
retour
vrai ;
Et javascript est analysé en
La signification originale du code est
C'est-à-dire qu'il ne peut pas y avoir de sauts de ligne entre les expressions suivantes de return, break et continue. Si des sauts de ligne sont ajoutés, le programme ne signalera une erreur que dans des circonstances extrêmement particulières. Et le débogage du programme est très gênant.