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
749 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!

source:php.cn
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