Recentemente, notei que muitos arquivos JavaScript na Web iniciam ;
imediatamente após a seção de comentários.
Por exemplo, o código deste plugin jQuery começa com:
/**
* 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( $ ){
Por que o arquivo precisa começar com a ;
? Também vejo essa convenção nos arquivos JavaScript do servidor.
Quais são as vantagens e desvantagens de fazer isso?
return
declaração como a última coisa em um script, pode? Voltar ao nível superior não faz sentido. Teria que ser outra coisa, certo?return
instrução não é executado e, portanto, não faz sentido concatenar. Pelo menos está}
faltando.Acredito (embora não tenha certeza, portanto, não me avise) que isso garantiria que qualquer declaração anterior de um arquivo diferente fosse fechada. Na pior das hipóteses, essa seria uma declaração vazia, mas, na melhor das hipóteses, poderia evitar rastrear um erro nesse arquivo quando a declaração inacabada realmente veio de cima.
fonte
Considere este exemplo:
O que acontecerá é que será avaliado assim:
Portanto, o que
a
está retornando será tratado como uma função e tentado ser inicializado.Isso ocorre principalmente para evitar erros ao tentar concaturar arquivos de multiplicação em um arquivo:
a.js
b.js
Se concatenarmos esses arquivos, isso causará problemas.
Portanto, lembre-se de colocar o seu
;
na frente(
e talvez também em alguns outros lugares. Btw.var a = 1;;;var b = 2;;;;;;;;;var c = a+b;
é perfeitamente válido JavaScriptfonte