J'ai récemment remarqué que de nombreux fichiers JavaScript sur le Web commencent par un ;
immédiatement après la section des commentaires.
Par exemple, le code de ce plugin jQuery commence par:
/**
* jQuery.ScrollTo
* Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* Date: 9/11/2008
.... skipping several lines for brevity...
*
* @desc Scroll on both axes, to different values
* @example $('div').scrollTo( { top: 300, left:'+=200' }, { axis:'xy', offset:-20 } );
*/
;(function( $ ){
Pourquoi le fichier doit-il commencer par un ;
? Je vois également cette convention dans les fichiers JavaScript côté serveur.
Quels sont les avantages et les inconvénients de faire cela?
return
déclaration comme dernière chose dans un script, n'est-ce pas? Revenir au plus haut niveau n'a pas de sens. Il faudrait que ce soit autre chose, non?return
instruction n'est pas exécuté, il n'est donc pas logique de concaténer. Au moins, il}
manque un .Je crois (bien que je ne sois pas certain, alors ne vous précipitez pas sur moi) que cela garantirait la fermeture de toute déclaration antérieure d'un autre dossier. Dans le pire des cas, il s'agirait d'une instruction vide, mais dans le meilleur des cas, cela pourrait éviter d'essayer de rechercher une erreur dans ce fichier lorsque l'instruction inachevée provenait réellement d'en haut.
la source
Considérez cet exemple:
Ce qui va arriver, c'est qu'il sera évalué comme ceci:
Donc, tout ce qui
a
revient sera traité comme une fonction à essayer d'être initialisé.C'est principalement pour éviter les erreurs lors de la tentative de concaténation de fichiers multiples en un seul fichier:
a.js
b.js
Si nous concaténons ces fichiers ensemble, cela entraînera des problèmes.
N'oubliez donc pas de mettre votre
;
devant(
et peut-être aussi quelques autres endroits. Btw.var a = 1;;;var b = 2;;;;;;;;;var c = a+b;
est un JavaScript parfaitement validela source