52 votes

Recommandez-vous d'utiliser des points-virgules après chaque instruction en JavaScript ?

Dans de nombreuses situations, les analyseurs JavaScript insèrent les points-virgules à votre place si vous les omettez. Ma question est la suivante : les laissez-vous de côté ?

Si vous n'êtes pas familier avec les règles, vous trouverez une description de l'insertion du point-virgule sur le site Web de la Commission européenne. Site de Mozilla . Voici le point essentiel :

Si la première à la n th d'une forme de programme JavaScript sont grammaticalement valides mais le premier jusqu'au n+1. st ne le sont pas et il y a un saut de ligne entre les jetons n th et les jetons n+1 st puis l'analyseur tente à nouveau d'analyser le programme après avoir inséré un point-virgule virtuel entre les n th et le n+1 st jetons.

Cette description est peut-être incomplète, car elle n'explique pas l'exemple de @Dreas. Quelqu'un a un lien vers les règles complètes, ou voit pourquoi l'exemple obtient un point-virgule ? (Je l'ai essayé en JScript.NET.)

Cette question de stackoverflow est lié, mais ne parle que d'un scénario spécifique.

8voto

JavaScript insère automatiquement des points-virgules lors de l'interprétation de votre code. Par conséquent, si vous placez la valeur de l'instruction de retour en dessous de la ligne, elle ne sera pas renvoyée :

Votre code :

return
5

Interprétation du JavaScript :

return;
5;

Ainsi, rien n'est renvoyé, en raison de l'insertion automatique de points-virgules par JavaScript.

7voto

Je pense que c'est similaire à ce qui a été discuté dans le dernier podcast. Le "Soyez libéral dans ce que vous acceptez" signifie qu'un travail supplémentaire a dû être effectué dans l'analyseur Javascript pour corriger les cas où les points-virgules étaient oubliés. Nous avons maintenant un tas de pages flottantes avec une mauvaise syntaxe, qui pourraient se casser un jour dans le futur quand un navigateur décidera d'être un peu plus strict sur ce qu'il accepte. Ce type de règle devrait également s'appliquer au HTML et au CSS. Vous pouvez écrire du HTML et du CSS erronés, mais ne soyez pas surpris d'obtenir des comportements étranges et difficiles à déboguer lorsqu'un navigateur n'interprète pas correctement votre code incorrect.

6voto

L'article Les points-virgules en JavaScript sont facultatifs fait de très bonnes remarques sur le fait de ne pas utiliser les points-virgules en Javascript. Il traite de tous les points soulevés par les réponses à cette question.

5voto

C'est le très meilleure explication de l'insertion automatique du point-virgule que je n'ai jamais trouvé nulle part. Il dissipera toutes vos incertitudes et vos doutes.

1voto

Non, n'utilisez les points-virgules que lorsqu'ils sont nécessaires.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X