Respuestas:
Los punto y coma después de las declaraciones de funciones no son necesarios .
La gramática de a FunctionDeclaration
se describe en la especificación como esta:
function Identifier ( FormalParameterListopt ) { FunctionBody }
No se requiere punto y coma gramaticalmente, pero podría preguntarse por qué.
Los punto y coma sirven para separar las declaraciones entre sí, y a FunctionDeclaration
no es una declaración .
FunctionDeclarations
se evalúan antes de que el código entre en ejecución, izar es una palabra común que se usa para explicar este comportamiento.
Los términos "declaración de función" y "declaración de función" a menudo se usan incorrectamente de manera intercambiable, porque no hay una declaración de función descrita en la Especificación ECMAScript, sin embargo, hay algunas implementaciones que incluyen una declaración de función en su gramática, -notablemente Mozilla- pero nuevamente esto No es estándar.
Sin embargo, siempre se recomiendan los punto y coma donde se usa FunctionExpressions
, por ejemplo:
var myFn = function () {
//...
};
(function () {
//...
})();
Si omite el punto y coma después de la primera función en el ejemplo anterior, obtendrá resultados completamente no deseados:
var myFn = function () {
alert("Surprise!");
} // <-- No semicolon!
(function () {
//...
})();
La primera función se ejecutará de inmediato, ya que los paréntesis que rodean a la segunda se interpretarán como los Arguments
de una llamada de función.
Clases recomendadas:
FunctionDeclaration
vs FunctionExpression
)Los uso después de las declaraciones de función como variable:
var f = function() { ... };
pero no después de las definiciones de estilo clásico:
function f() {
...
}
JS Lint es una convención de facto, y dice que no hay punto y coma después del cuerpo de la función. Vea la sección "Punto y coma" .
¡Solo mantente constante! No son necesarios, pero los uso personalmente porque la mayoría de las técnicas de minificación dependen del punto y coma (por ejemplo, Packer ).
Realmente solo depende de tu preferencia. Me gusta terminar las líneas de código con punto y coma porque estoy acostumbrado a Java, C ++, C #, etc., así que uso los mismos estándares para codificar en JavaScript.
Sin embargo, normalmente no termino las declaraciones de función en punto y coma, pero esa es solo mi preferencia.
Los navegadores lo ejecutarán de cualquier manera, pero tal vez algún día se les ocurran algunos estándares más estrictos que lo rijan.
Ejemplo de código que escribiría:
function handleClickEvent(e)
{
// comment
var something = true; // line of code
if (something) // code block
{
doSomething(); // function call
}
}
En realidad, es más que una cuestión de convención o coherencia.
Estoy bastante seguro de que no colocar punto y coma después de cada declaración ralentiza el analizador interno porque tiene que averiguar dónde está el final de la declaración. Desearía tener algunos números útiles para que lo confirmes positivamente, pero tal vez puedas googlearlo tú mismo. :)
Además, cuando comprime o minimiza el código, la falta de punto y coma puede llevar a una versión reducida de su secuencia de comandos que no hace lo que desea porque todo el espacio en blanco desaparece.
Cuando minimicé mis scripts, me di cuenta de que necesitaba usar punto y coma para las funciones que comienzan con la marca igual. si define una función como var, sí, necesita usar punto y coma.
necesita punto y coma
var x = function(){};
var x = new function(){};
this.x = function(){};
no necesita punto y coma
function x(){}
SENCILLO:
Es una buena práctica dejar los puntos y comas ;
después del final de las llaves de función. Han sido considerados una mejor práctica durante años.
Una ventaja de usarlos siempre es si quieres minimizar tu JavaScript.
Como minimizar el Javascript, ayuda a reducir un poco el tamaño del archivo.
Pero en cuanto a las mejores prácticas y respuestas anteriores, no se recomienda usarlo después de una etiqueta de función.
Si NO usa punto y coma, y si quiere minimizar (como a muchos desarrolladores les gusta hacer si su sitio tiene una gran cantidad de JavaScript), podría obtener todo tipo de Errores / Advertencias.
el punto y coma después de una función no es necesario para usarla o no, no causa errores en su programa. sin embargo, si planea minificar su código, entonces es una buena idea usar punto y coma después de las funciones. digamos, por ejemplo, que tienes un código como el siguiente
//file one
var one=1;
var two=2;
function tryOne(){}
function trytwo(){}
y
//file two
var one=1;
var two=2;
function tryOne(){};
function trytwo(){};
cuando minimice ambos, obtendrá lo siguiente como salida
//file one
var one=1;var two=2;function tryOne(){}
function trytwo(){}
y
//file two
var one=1;var two=2;function tryOne(){};function trytwo(){};