Maison >interface Web >js tutoriel >Comment fonctionne l'insertion automatique de point-virgule (ASI) de JavaScript et quand insère-t-elle des points-virgules ?

Comment fonctionne l'insertion automatique de point-virgule (ASI) de JavaScript et quand insère-t-elle des points-virgules ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-23 00:17:15557parcourir

How Does JavaScript's Automatic Semicolon Insertion (ASI) Work and When Does it Insert Semicolons?

Règles d'insertion automatique de point-virgule (ASI) de JavaScript

L'insertion automatique de point-virgule (ASI) est une fonctionnalité de JavaScript qui insère un point-virgule à la fin de certaines déclarations lorsqu'elles sont omises. Comprendre les règles de l'ASI est crucial pour éviter les comportements inattendus et les bugs.

Déclarations concernées :

ASI s'applique aux déclarations suivantes :

  • Déclarations vides
  • Déclarations Var
  • Expression déclarations
  • Déclarations faire pendant
  • Déclarations Continuer
  • Déclarations de rupture
  • Déclarations de retour
  • Déclarations de lancement

Règles ASI :

Les règles d'ASI sont définis dans la spécification JavaScript comme suit :

  • Jeton invalide : Si un jeton invalide est rencontré, un point-virgule est inséré avant lui s'il est précédé d'un saut de ligne et est suivi d'une accolade fermante.
  • Fin du flux d'entrée : Si la fin du flux d'entrée est atteinte, un point-virgule est inséré si l'entrée ne peut pas être analysée comme un programme complet.
  • Jetons restreints : Les points-virgules sont automatiquement insérés avant certains jetons restreints, quels que soient les sauts de ligne. Il s'agit notamment des fonctions d'incrémentation, de décrémentation, de continuation, d'arrêt, de retour, de lancement, de flèche et d'expressions de rendement.

Exemples :

Exemple avec Invalid Jeton :

{ 1
2 } 3

Inserts ASI points-virgules :

{ 1
;2 ;} 3;

Exemple avec la fin du flux d'entrée :

a = b
++c

ASI insère un point-virgule :

a = b;
++c;

Exemple avec jeton restreint :

return
"something";

ASI insère un point-virgule :

return;
"something";

Exemple avec un jeton valide (comportement) :

L'exemple fourni dans la question (_a b;) n'entraîne pas l'insertion d'un point-virgule car l'identifiant _a est un jeton valide, même s'il lui manque un point-virgule. Cependant, si le saut de ligne est supprimé (_a b;), ASI insère un point-virgule, ce qui donne une instruction valide.

Conclusion :

ASI est une fonctionnalité utile en JavaScript qui permet un code plus concis. Cependant, il est crucial de comprendre les règles spécifiques pour éviter les erreurs de syntaxe et les comportements inattendus. En suivant ces règles, les développeurs peuvent écrire du code JavaScript clair et fiable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn