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:
Los uso después de las declaraciones de función como variable:
pero no después de las definiciones de estilo clásico:
fuente
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" .
fuente
¡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 ).
fuente
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:
fuente
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.
fuente
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
no necesita punto y coma
fuente
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.
fuente
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
y
cuando minimice ambos, obtendrá lo siguiente como salida
Tenga en cuenta que los comentarios son solo para ilustrar
y
fuente