Clarification de l'applicabilité d'ASI
L'insertion automatique de point-virgule (ASI) est une fonctionnalité JavaScript qui insère automatiquement un point-virgule dans le code lorsqu'il est manquant et ne provoquerait pas d'erreurs syntaxiques. Cependant, cela ne s'applique qu'à des types d'instructions spécifiques :
Règles ASI selon la spécification ECMAScript
La spécification ECMAScript définit trois scénarios pour ASI :
1. Jeton invalide rencontré
Un jeton incriminé non autorisé par la grammaire déclenche l'insertion d'un point-virgule si :
2. Fin du flux d'entrée
Si le flux d'entrée se termine sans que l'analyseur puisse analyser un programme complet, un point-virgule est inséré à la fin.
3. Productions restreintes
Lorsqu'un jeton est autorisé mais appartient à une « production restreinte » (par exemple, revenir ou continuer sans saut de ligne), un point-virgule est inséré avant lui.
Exemple :
return "something";
est transformé à :
return; "something";
Exception à la règle
Cependant, il existe une exception aux règles. Si l'ASI aboutit à une SyntaxError, elle n'est pas insérée. Par exemple, dans le code suivant :
if (x) return y;
ASI le transformerait en :
if (x) return; y;
Cela provoquerait une SyntaxError car y n'est pas une instruction valide en soi.
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!