En varias bibliotecas de JavaScript vi esta notación al principio:
/**
* Library XYZ
*/
;(function () {
// ... and so on
Si bien estoy perfectamente cómodo con la sintaxis de "función ejecutada inmediatamente"
(function(){...})()
Me preguntaba para qué sirve el punto y coma principal. Todo lo que se me ocurre es que es un seguro. Es decir, si la biblioteca está incrustada en otro código con errores, sirve como "la última declaración termina aquí en el último" tipo de aumento de velocidad.
¿Tiene alguna otra funcionalidad?
javascript
syntax
Boldewyn
fuente
fuente
Respuestas:
Le permite concatenar de manera segura varios archivos JavaScript en uno, para servirlo más rápido como una solicitud HTTP.
fuente
(function(){...})()(function(){...})()
.La mejor respuesta se dio realmente en la pregunta, así que solo escribiré aquí para mayor claridad:
El principio
;
delante de las expresiones de función invocadas de inmediato está ahí para evitar errores al agregar el archivo durante la concatenación a un archivo que contiene una expresión que no termina correctamente con un;
.La mejor práctica es terminar sus expresiones con punto y coma, pero también usar el punto y coma inicial como medida de seguridad.
fuente
"\n"
con";\n"
no tiene sentido.Fuente:
JavaScript: la guía definitiva, sexta edición
fuente
Esto se conoce como punto y coma inicial.
Su objetivo principal es protegerse del código anterior que se cerró incorrectamente, lo que puede causar problemas. Un punto y coma evitará que esto suceda. Si el código anterior se cerró incorrectamente, nuestro punto y coma lo corregirá. Si se cerró correctamente, nuestro punto y coma será inofensivo y no habrá efectos secundarios.
fuente
Una respuesta de una línea es concatenar de manera segura múltiples archivos JavaScript. Usar un punto y coma no plantea un problema.
Supongamos que tiene múltiples funciones:
IIFE 1
IIFE 2
En la concatenación puede verse así:
Pero si agrega un punto y coma antes de la función, se verá así:
Entonces, al agregar a
;
, se cuida si alguna expresión no se termina correctamente.Ejemplo 2
Suponga que tiene un archivo JavaScript con una variable:
Otro archivo JavaScript con alguna función:
Ahora en la concatenación se verá como
Con un punto y coma, se verá así:
fuente
Es bueno cuando minimizas el código JavaScript. Previene errores de sintaxis inesperados.
fuente