Expression à gauche d'une fonction en JavaScript
Examinons le code suivant :
+function func() {
console.log('!');
}
Comme vous le savez déjà, cette fonction est une expression fonctionnelle, malgré le fait qu'elle ait un nom (nous avons déjà établi que la présence d'un nom n'est pas un critère). Enlevons ce plus - et nous obtenons une Function Declaration :
function func() {
console.log('!');
}
Mettons un + sur la ligne devant
la fonction - elle redevient une Function Expression :
+
function func() {
console.log('!');
}
Et maintenant, après le plus, mettons le nombre 1
et un point-virgule - notre fonction devient une Function
Declaration :
+1;
function func() {
console.log('!');
}
Pourquoi : parce que sur la première ligne se trouve une commande terminée, fermée par un point virgule. Cette commande n'affecte donc en rien notre fonction.
En fait, le point-virgule peut être supprimé, car en JavaScript il n'est pas obligatoire - la fonction reste une Function Declaration :
+1
function func() {
console.log('!');
}
Mais si après 1 on ajoute un autre
plus, la fonction devient une Function Expression :
+1+
function func() {
console.log('!');
}
Pourquoi : parce que sur la première ligne se trouve une expression non terminée - il y a un plus et après lui, rien. Par conséquent, l'interpréteur JavaScript considère que ce plus se rapporte à la ligne ci-dessous, c'est-à-dire à notre fonction.
Si la première ligne contient une expression terminée, alors JavaScript place automatiquement un point-virgule après elle et cette expression n'affecte en rien notre fonction.
Déterminez si la fonction présentée est une Function Declaration ou une Function Expression :
-
function func() {
console.log('!');
}
Déterminez si la fonction présentée est une Function Declaration ou une Function Expression :
-1;
function func() {
console.log('!');
}
Déterminez si la fonction présentée est une Function Declaration ou une Function Expression :
-1
function func() {
console.log('!');
}
Déterminez si la fonction présentée est une Function Declaration ou une Function Expression :
1
function func() {
console.log('!');
}
Déterminez si la fonction présentée est une Function Declaration ou une Function Expression :
-1-
function func() {
console.log('!');
}