Recommandez-vous à l'aide de points-virgules après chaque déclaration en JavaScript?
Dans de nombreuses situations, JavaScript analyseurs va insérer des points-virgules pour vous si vous les laissez. Ma question est, ne vous laissez?
Si vous n'êtes pas familier avec les règles, il y a une description de point-virgule insertion sur le Site Mozilla. Voici le point clé:
Si la première par le biais de la nème jetons d'un programme JavaScript formulaire sont grammaticalement valide, mais la première par le n+1st les jetons ne sont pas et il y a un saut de ligne entre les nème jetons et le n+1st jetons, puis l'analyseur tente d'analyser à nouveau le programme après l'insertion d'une virtuel point-virgule jeton entre les nème et le n+1st jetons.
Que la description peut être incomplète, car elle n'explique pas @Dreas l'exemple. Quelqu'un a un lien pour les règles complètes, ou de voir pourquoi l'exemple obtient un point-virgule? (Je l'ai essayé dans JScript.NET.)
Cette question stackoverflow est lié, mais seulement parle d'un scénario spécifique.
Vous devez vous connecter pour publier un commentaire.
Oui, vous devriez utiliser des points-virgules après chaque déclaration en JavaScript.
L'ambiguïté d'un cas qui se brise en l'absence d'un point-virgule:
Cela peut être interprétée comme:
À la fin nous devons passer à la deuxième fonction en tant qu'argument à la première fonction, puis d'essayer d'appeler le résultat du premier appel de la fonction comme une fonction. La deuxième fonction échouera avec un "... n'est pas une fonction" erreur lors de l'exécution.
var foo = "bar";
mais je ne savais pas qu'ils devraient être à la fin de fonctions, j'ai pensé que l'accolade fermante terminé l'instruction? Dois-je donc mettre un point-virgule après tous les blocs d'instructions commeif
,while
, etc. trop?;(function() {
)Oui, vous devez toujours utiliser des points-virgules. Pourquoi? Parce que si vous vous retrouvez à l'aide d'un JavaScript compresseur, tous de votre code sur une seule ligne, ce qui va casser votre code.
Essayer http://www.jslint.com/; il ne sera blesser vos sentiments, mais vous montrer de nombreuses façons pour mieux écrire du JavaScript (et l'un des moyens est de toujours utiliser des points-virgules).
Ce que tout le monde semble manquer, c'est que les points-virgules en JavaScript ne sont pas de déclaration terminateurs mais déclaration séparateurs. C'est une différence subtile, mais il est important de la façon dont l'analyseur est programmée. Les traiter comme ce qu'ils sont et vous trouverez les mettant sentirez beaucoup plus naturel.
J'ai programmé dans d'autres langues où le point-virgule est une déclaration séparateur et également en option comme l'analyseur ne " semi-colon de l'insertion sur des sauts de ligne où il ne se casse pas la grammaire. Ainsi, je n'étais pas familier avec elle quand je l'ai trouvé en JavaScript.
Je n'aime pas le bruit dans une langue (qui est une raison, je suis mauvais en Perl) et des points-virgules sont du bruit en JavaScript. J'ai donc omettre.
Je dirais constance est plus important que de sauver un peu d'octets. J'ai toujours inclure des points-virgules.
D'autre part, je tiens à préciser qu'il y a de nombreux endroits où le point-virgule n'est pas nécessaire du point de vue syntaxique, même si un compresseur est la destruction de tous les espaces disponibles. par exemple, à la fin d'un bloc.
JavaScript insère automatiquement des points-virgules, tandis que l'interprétation de votre code, donc si vous mettez la valeur de l'instruction de retour en dessous de la ligne, il ne sera pas renvoyé:
Votre Code:
Interprétation Du JavaScript:
Ainsi, rien n'est renvoyé, en raison de JavaScript de l'auto de point-virgule insertion
Je pense que c'est similaire à ce que le dernier podcast de discussion. Le "libéral dans ce que vous acceptez" signifie qu'un travail supplémentaire a dû être mis dans le parser Javascript pour résoudre les cas où des points-virgules ont été laissés de côté. Maintenant, nous avons une cargaison de pages là flottant autour avec une mauvaise syntaxe, qui pourrait casser un jour dans l'avenir, lorsque certains navigateur décide d'être un peu plus rigoureux sur ce qu'il accepte. Ce type de règle devrait aussi s'appliquer à HTML et CSS. Vous pouvez écrire rompu HTML et CSS, mais ne soyez pas surpris quand vous obtenez bizarre et difficile à déboguer les comportements lors de certains navigateur ne prend pas en mesure d'interpréter correctement votre code incorrect.
L'article Des points-virgules en JavaScript sont en option fait vraiment de bons points ne pas semi-points en Javascript. Elle traite de tous les points ont été mis en place par les réponses à cette question.
C'est le très la meilleure explication de automatique point-virgule insertion que j'ai trouvé n'importe où. Il éliminera tous vos incertitude et de doute.
Je utilisez le point-virgule, puisque c'est mon habitude.
Maintenant, je comprends pourquoi je ne peux pas avoir de chaîne coupée en deux lignes... il met un point-virgule à la fin de chaque ligne.
Non, seulement utiliser des points-virgules lorsque vous en avez besoin.