Expresión de función a la izquierda en JavaScript
Consideremos el siguiente código:
+function func() {
console.log('!');
}
Como ya sabes, esta función es una expresión funcional, a pesar de tener un nombre asignado (ya hemos establecido que la presencia de un nombre no es un criterio en absoluto). Si quitamos este plus - obtenemos una Function Declaration:
function func() {
console.log('!');
}
Pongamos un + en la línea antes de
la función - se convertirá nuevamente en una
Function Expression:
+
function func() {
console.log('!');
}
Y ahora después del plus, pongamos el número
1 y un punto y coma - nuestra función
se convertirá en una Function Declaration:
+1;
function func() {
console.log('!');
}
Por qué es así: porque en la primera línea hay un comando completo terminado, cerrado con un punto y coma. Por lo tanto, este comando no afecta de ninguna manera a nuestra función.
En realidad, el punto y coma se puede omitir, ya que en JavaScript no es obligatorio - la función seguirá siendo una Function Declaration:
+1
function func() {
console.log('!');
}
Pero si después de 1 agregamos otro
plus, la función se convertirá en una
Function Expression:
+1+
function func() {
console.log('!');
}
Por qué es así: porque en la primera línea hay una expresión no terminada - hay un plus y después nada. Por lo tanto, el intérprete de JavaScript considera que este plus pertenece a la línea de abajo, es decir, a nuestra función.
Si en la primera línea hay una expresión terminada, entonces JavaScript automáticamente le coloca un punto y coma y esta expresión no afecta de ninguna manera a nuestra función.
Determina si la función presentada es una Function Declaration o una Function Expression:
-
function func() {
console.log('!');
}
Determina si la función presentada es una Function Declaration o una Function Expression:
-1;
function func() {
console.log('!');
}
Determina si la función presentada es una Function Declaration o una Function Expression:
-1
function func() {
console.log('!');
}
Determina si la función presentada es una Function Declaration o una Function Expression:
1
function func() {
console.log('!');
}
Determina si la función presentada es una Function Declaration o una Function Expression:
-1-
function func() {
console.log('!');
}