Espressione a sinistra della funzione in JavaScript
Consideriamo il seguente codice:
+function func() {
console.log('!');
}
Come già sapete, questa funzione è un'espressione funzionale, nonostante abbia un nome (abbiamo già stabilito che la presenza di un nome non è affatto un criterio). Rimuoviamo questo più - e otteniamo una Function Declaration:
function func() {
console.log('!');
}
Mettiamo + sulla riga prima della
funzione - diventerà di nuovo un Function Expression:
+
function func() {
console.log('!');
}
E ora dopo il più mettiamo il numero 1
e un punto e virgola - la nostra funzione diventerà una
Function Declaration:
+1;
function func() {
console.log('!');
}
Perché: perché sulla prima riga c'è un comando completo, terminato da un punto e virgola. Quindi questo comando non influenza in alcun modo la nostra funzione.
In realtà il punto e virgola può essere rimosso, dato che in JavaScript non è obbligatorio - la funzione rimarrà comunque una Function Declaration:
+1
function func() {
console.log('!');
}
Ma se dopo 1 aggiungiamo un altro
più, la funzione diventerà un Function Expression:
+1+
function func() {
console.log('!');
}
Perché: perché sulla prima riga c'è un'espressione non terminata - c'è un più e dopo di esso non c'è niente. Pertanto l'interprete JavaScript ritiene che questo più si riferisca alla riga sottostante, cioè alla nostra funzione.
Se invece sulla prima riga c'è un'espressione terminata, allora JavaScript mette automaticamente un punto e virgola e questa espressione non influenza in alcun modo la nostra funzione.
Determinate se la funzione presentata è una Function Declaration o un Function Expression:
-
function func() {
console.log('!');
}
Determinate se la funzione presentata è una Function Declaration o un Function Expression:
-1;
function func() {
console.log('!');
}
Determinate se la funzione presentata è una Function Declaration o un Function Expression:
-1
function func() {
console.log('!');
}
Determinate se la funzione presentata è una Function Declaration o un Function Expression:
1
function func() {
console.log('!');
}
Determinate se la funzione presentata è una Function Declaration o un Function Expression:
-1-
function func() {
console.log('!');
}