La structure lexicale d'un langage de programmation est un ensemble de règles de base utilisé pour décrire comment vous écrivez ce langage. En tant que base de la syntaxe, il spécifie à quoi ressemblent les noms de variables, comment rédiger des commentaires et comment faire la distinction entre les déclarations. Cette section utilise un espace très court pour introduire la structure lexicale de JavaScript.
1. Ensemble de caractères
Le programme JavaScript est écrit dans des jeux de caractères Unicode, un superset de ASCII et Latin-1 et prend en charge presque toutes les langues de la région. ECMascript3 nécessite que l'implémentation de JavaScript doit prendre en charge les versions Unicode2, 1 et suivantes, tandis que ECMascript5 nécessite que l'implémentation de JavaScript doit prendre en charge Unicode3 et les versions suivantes.
je. sensible aux majuscules et minuscules
JavaScript est un langage sensible à la cas, c'est-à-dire que les mots clés, les variables, les noms de fonction et tous les caractères d'expression doivent être cohérents. Par exemple, le mot-clé doit être écrit comme dans le cas où, et ne peut pas être écrit comme pendant ou pendant que.
Mais il convient de noter que HTML n'est pas sensible à la casse (bien que XHTML soit différent), et il est facile d'être confus car il est étroitement lié au client JavaScript. Par exemple, dans l'événement de traitement défini par HTML, l'attribut onClick peut être écrit comme onclick, mais dans JavaScript, il peut être écrit en onclick.
II Espaces, Breaks de ligne et contrôleurs de format
JavaScript ignore les espaces entre les jetons du programme. Dans la plupart des cas, JavaScript ignore également les pauses de ligne. Étant donné que les espaces et les ruptures de ligne peuvent être utilisés à volonté dans le code, une indentation soignée et cohérente peut être utilisée en même temps pour former un style de codage unifié, améliorant la lisibilité du code.
JavaScript en plus d'identifier les caractères de l'espace (/ u0020). JavaScript affiche également les caractères suivants qui indiquent les espaces: caractères d'onglet horizontaux (/ u0009), caractère à onglet vertical (/ U000B), caractère de renouvellement de page (/ U000C), caractère blanc non interrompu (/ u00a0), balise endian (/ uFEFF) et caractères dans toutes les catégories zs dans uncocode. JavaScript reconnaît les caractères suivants comme des caractères de fin: Break (/ U000A), symbole de retour de chariot (/ u000d), séparateur de ligne (/ u2028) et séparateur de segment (/ u2029). Le caractère de retour du chariot et le caractère de rupture de ligne sont analysés en un caractère de fin de ligne.
Le format Unicode contrôle les caractères (classe CF), tels que "Écrire des marques de droite à gauche" (/ u200f) et "Écrire des marques de gauche à droite" (/ u200e), contrôle l'affichage visuel du texte. Ceci est crucial pour l'affichage correct de certains textes non anglophones, qui peuvent être utilisés dans les commentaires JavaScript, les quantités directes de chaîne et les quantités directes d'expression régulière, mais ne peuvent pas être utilisées dans les identifiants (par exemple, des noms de variables), mais il existe une exception à un connecteur zéro-largeur (/ U200D) et ne peut pas être utilisé comme des caractères de gestion. Il est également mentionné ci-dessus que le caractère de contrôle du format de marque d'ordre des octets (/ UFEFF) est traité comme un espace.
III.Unicode Escape Séquence
Dans certains matériels et logiciels informatiques, l'ensemble complet des caractères Unicode ne peut pas être affiché ou entré. Pour prendre en charge les programmeurs utilisant l'ancienne technologie, 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, suivies de rats hexadécimaux (indiqués par des nombres et des lettres en majuscules et en minuscules). Cette écriture Unicode Escape peut être utilisée dans les quantités directes de chaîne JavaScript, les expressions régulières et les identifiants (sauf les mots clés). Par exemple, l'évasion Unicode du caractère é est écrite comme / u00e9, et les deux chaînes JavaScript suivantes sont exactement les mêmes.
"Café" === "CAF / U00E9" => Vrai
Unicode Escape L'écriture peut apparaître dans les commentaires, mais comme JavaScript ignore les commentaires, ils sont simplement traités comme des caractères ASCII dans le contexte et ne seront pas suivis par les caractères Unicode.
IIII Standardisation
Unicode permet d'encoder le même caractère en utilisant plusieurs méthodes. Par exemple, le caractère éé peut utiliser le caractère Unicode / U00E9, ou le caractère ASCII ordinaire E peut être utilisé pour suivre un symbole de tonalité / U0301. Dans un éditeur de texte, les résultats affichés par ces deux encodages sont exactement les mêmes, mais leurs représentations d'encodage binaires sont différentes et ne sont pas égales 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 en un format standard adapté à la comparaison, et ne normalisera plus d'autres représentations, chaînes ou expressions régulières.
2. Commentaires
JavaScript prend en charge deux méthodes de commentaires. Le texte après "//" à la fin de la ligne sera ignoré par JavaScript comme commentaires.
De plus, le texte entre / * et * / est également utilisé comme commentaires. Ce type de commentaire peut être écrit sur les lignes, mais il n'y a pas de commentaires imbriqués.
// Commentaire à ligne unique
/ *
*
*
*
* /
3. Quantité directe
La quantité dite directe (littéral) est la valeur de données directement utilisée dans le programme. La quantité directe est répertoriée ci-dessous.
La copie de code est la suivante:
12 // nombres
1,2 // décimal
"Hllo World" // Texte de chaîne
'salut' // une autre chaîne
Vrai // Boolean
Faux // Boolean
/ JavaScript / gi // Expression régulière Quantité directe (utilisée comme correspondance de motifs)
nul // vide
Le chapitre 3 expliquera en détail la quantité directe de nombres et de chaînes. La quantité directe d'expressions régulières sera expliquée dans le chapitre 10. Plus d'expressions de bien-être peuvent être rédigées directement sous forme de tableaux ou d'objets.
{x: 1, y: 2} // objet
[1,2,3,4,5] // Array
4. Identificateurs et mots réservés
Un identifiant est un nom. Dans JavaScript, les identifiants sont utilisés pour nommer des variables et des fonctions, ou pour marquer la position de saut dans certaines instructions de boucle dans le code JavaScript. L'identifiant JavaScript doit être en lettres. Le soulignement ou le signe du dollar commence. Les caractères suivants peuvent être des lettres. nombre. Signe de soulignement ou d'un dollar (les chiffres ne sont pas autorisés à apparaître comme des initiales, JavaScript peut facilement distinguer les identificateurs des nombres), et les identifiants suivants suivants sont des identifiants légaux
La copie de code est la suivante:
my_variable_name
B13
_factice
$ str
Pour la portabilité et la facilité d'écriture, nous n'utilisons généralement que des lettres et des nombres ASCII pour écrire des identifiants. Il convient alors de noter que JavaScript permet des lettres et des nombres dans l'ensemble des caractères Unicode dans l'identifiant (de la technologie à Ecmascript permet à la classe MN, à la classe MC et à la classe P du mécanisme de caractères Unicode apparaisse après le premier caractère de l'identifiant). Par conséquent, les programmeurs peuvent utiliser des langues non anglophones ou des symboles mathématiques pour écrire des identifiants.
La copie de code est la suivante:
var sá = true;
var π = 3,14;
JavaScript supprime certains identificateurs comme des mots clés, afin que les noms ne puissent plus utiliser ces mots clés comme identificateurs dans le programme.
La copie de code est la suivante:
casser
cas
attraper
Continuer à continuer
défaut
Supprimer la suppression
faire
autre
Enfin
pour
fonction
si
dans
instance de
nouveau
Retour
changer
Ce
lancer
essayer
typeof
var
vide
Alors que
avec
Mots réservés javascript
Exportation de la classe const ENUM
L'exportation étend l'importation super
De plus, ces mots clés sont légaux en JavaScript normal, mais sont des mots réservés en mode strict
Implémentez le package d'interface de rendement public privé
statique protégé
Dans le même mode strict, les identificateurs suivants sont strictement restreints, mais les noms de variables, les noms de paramètres et les noms de fonction ne peuvent pas être utilisés.
Arguments Eval
L'implémentation spécifique de JavaScript peut définir des variables et des fonctions globales uniques. Chaque serveur spécifique en cours d'exécution JavaScript (client), etc., possède sa propre liste d'attribut globale, qui doit être gardée à l'esprit. (Objet Window pour comprendre la liste des variables et fonctions globales définies dans le client JavaScript)
5. Semicolon facultatif
Comme de nombreux langages de programmation, JavaScript utilise des demi-colons (;) pour séparer les déclarations. Ceci est très important pour améliorer la lisibilité et la propreté du code. La fin d'une déclaration sans séparateur devient le début de la déclaration suivante, et vice versa.
En JavaScript, chaque instruction prend une ligne, et le point-virgule entre les instructions peut généralement être omis (le point-virgule avant les accolades du "}" à la fin du programme peut également être omis). De nombreux programmeurs JavaScript (y compris les exemples de code de ce livre) utilisent des demi-colons pour marquer clairement la fin d'une déclaration, même lorsque les demi-colons ne sont pas complètement nécessaires. Un autre style consiste à omettre des demi-colons lorsqu'ils peuvent être omis, et à utiliser des demi-colons lorsqu'ils doivent être utilisés. Quel que soit le style de programmation, il y a plusieurs détails auxquels faire attention à JavaScript.
Le code suivant, le premier point-virgule peut être omis
a = 3;
b = 4;
Cependant, s'il est écrit dans le format suivant, le premier point-virgule ne peut pas être omis.
a = 3; b = 4;
Il convient de noter que JavaScript ne remplit pas les demi-colons dans toutes les nouvelles lignes: JavaScript ne remplira les demi-colons que lorsque le code n'est pas analysé normalement sans demi-finale. En d'autres termes (similaires aux deux exceptions du code suivant), si l'instruction actuelle et les caractères non espaces suivants ne peuvent pas être analysés dans son ensemble, JavaScript remplira les demi-colons à la fin de l'instruction actuelle. Voir le code suivant
var a
un
=
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 semi-mémion, JavaScript ne peut pas analyser Var AA dans le code. Le second A peut être utilisé comme instruction "A;", mais JavaScript ne remplit pas le point-virgule à la fin de la deuxième ligne. Car il peut être analysé avec le contenu de la troisième ligne à "a = 3;" .
Les règles de séparation de certaines déclarations conduiront à certaines situations inattendues. Ce code de rupture est divisé en deux lignes, qui semble être deux déclarations indépendantes.
var y = x + f
(a + b) .toString ()
Les supports de la deuxième ligne forment un appel de fonction avec le F sur la première ligne. JavaScript considérera ce code comme
var y = x + f (a + b) .toString ();
De toute évidence, l'intention d'origine du code n'est pas comme ça. Afin de permettre à l'analyse du code ci-dessus en deux instructions différentes, vous devez remplir manuellement le pointage d'affichage du comportement.
D'une manière générale, si une déclaration commence par ([/ + -, il est très probable qu'elle soit analysée avec la déclaration précédente. Les déclarations commençant par / + - ne sont pas très courantes, mais les déclarations commençant par ([sont très courantes. Au moins dans certains styles de codage javascrip correctement;
Si l'instruction actuelle et l'instruction de ligne suivante ne peuvent pas être fusionnées et analysées. JavaScript remplit le point-virgule après la première ligne, qui est une règle commune, mais a deux colonnes à l'extérieur. La première exception implique le retour, Birak, il continue de poursuivre la déclaration si ces trois mots clés sont suivis d'une pause en ligne. JavaScript remplira les demi-colons à la nouvelle ligne. Par exemple
Par exemple
Retour
vrai;
Et javascript analysé
retour; ture;
Et la signification originale du code est
retourner la vérité;
En d'autres termes, il ne peut pas y avoir de ruptures de ligne entre les expressions ultérieures avec retour, pause et contuine. Si une rupture de ligne est ajoutée, le programme ne peut signaler qu'une erreur dans des circonstances particulières. De plus, le débogage du programme est gênant.
Le deuxième exemple est quand il s'agit de l'opérateur ++ - ces symboles d'expression peuvent représenter le préfixe et le suffixe de l'expression de l'identifiant. S'il est suivi de l'expression, s'il est utilisé comme expression du suffixe. Il et l'expression doivent être considérés comme une seule ligne. Sinon, le point-virgule sera rempli à la fin de la ligne.
La copie de code est la suivante:
x
++
oui
Le code ci-dessus est analysé comme
La copie de code est la suivante:
x;
++ y