Maison > interface Web > js tutoriel > Comment fonctionne l'insertion automatique de point-virgule (ASI) de JavaScript et comment puis-je éviter ses pièges ?

Comment fonctionne l'insertion automatique de point-virgule (ASI) de JavaScript et comment puis-je éviter ses pièges ?

Mary-Kate Olsen
Libérer: 2024-12-24 05:42:15
original
815 Les gens l'ont consulté

How Does JavaScript's Automatic Semicolon Insertion (ASI) Work and How Can I Avoid Its Pitfalls?

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

L'ASI de JavaScript est une fonctionnalité qui peut automatiquement insérer des points-virgules à la fin de certaines instructions si elles sont manquantes. Cela peut être utile dans certains cas, mais cela peut également conduire à des bugs.

Déclarations affectées par ASI

ASI est appliqué aux types de déclarations suivants :

  • Instruction vide
  • Instruction Var
  • Expression déclaration
  • Déclaration de faire pendant
  • Déclaration de continuation
  • Déclaration de rupture
  • Déclaration de retour
  • Déclaration de lancement

Règles ASI

Les règles spécifiques à l'ASI sont les suivantes suit :

  1. Si un jeton invalide est rencontré et qui n'est pas autorisé par la grammaire, un point-virgule est inséré avant lui si :

    • Le jeton est séparé de le jeton précédent par au moins un saut de ligne.
    • Le jeton est une accolade fermante (}).
  2. Lorsque la fin du flux d'entrée de jetons est rencontrée et que l'analyseur ne peut pas analyser le flux de jetons d'entrée comme un seul programme complet, un point-virgule est automatiquement inséré à la fin du flux d'entrée.
  3. Si un jeton est autorisé par la grammaire, mais que la production est une production restreinte, un point-virgule est automatiquement inséré avant le jeton restreint jeton.

Les productions restreintes incluent :

  • Mettre à jour les expressions ( , --)
  • Instructions Continuer
  • Instructions de rupture
  • Déclarations de retour
  • Jeter déclarations
  • Fonctions fléchées
  • Expressions de rendement

Exemples

Exemple 1 :

{ 1
2 } 3
Copier après la connexion

ASI va transformer ce code à :

{ 1
;2 ;} 3;
Copier après la connexion

Exemple 2 :

a = b
++c
Copier après la connexion

ASI transformera ce code en :

a = b;
++c;
Copier après la connexion

Exemple 3 :

return
"something";
Copier après la connexion

ASI va transformer ce code à :

return;
"something";
Copier après la connexion

Éviter les bugs ASI

ASI peut être une fonctionnalité utile, mais elle peut également conduire à des bugs. Pour éviter les bugs ASI, il est préférable de toujours utiliser explicitement des points-virgules à la fin de chaque instruction.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal