Udtryk til venstre for funktion i JavaScript
Lad os se på følgende kode:
+function func() {
console.log('!');
}
Som du allerede ved, er denne funktion et funktionelt udtryk, på trods af at den har et navn (vi har allerede fastslået, at tilstedeværelsen af et navn overhovedet ikke er et kriterium). Fjern dette plus - og vi får en Function Declaration:
function func() {
console.log('!');
}
Lad os sætte + på linjen foran
funktionen - den bliver igen til et Function Expression:
+
function func() {
console.log('!');
}
Og nu sætter vi tallet 1
og et semikolon efter plustegnet - vores funktion bliver til en Function
Declaration:
+1;
function func() {
console.log('!');
}
Hvorfor det: fordi der på den første linje står en færdig kommando, afsluttet med et semikolon. Derfor påvirker denne kommando ikke vores funktion.
Faktisk kan semikolonet fjernes, da det ikke er obligatorisk i JavaScript - funktionen forbliver en Function Declaration:
+1
function func() {
console.log('!');
}
Men hvis man sætter endnu et
plustegn efter 1, bliver funktionen til et Function Expression:
+1+
function func() {
console.log('!');
}
Hvorfor det: fordi der på den første linje står et uafsluttet udtryk - der står et plustegn og efter det intet. Derfor antager JavaScript-fortolkeren, at dette plustegn hører til linjen nedenunder, det vil sige til vores funktion.
Hvis der derimod står et afsluttet udtryk på den første linje, så sætter JavaScript automatisk et semikolon efter det, og dette udtryk påvirker ikke vores funktion.
Bestem om den præsenterede funktion er en Function Declaration eller et Function Expression:
-
function func() {
console.log('!');
}
Bestem om den præsenterede funktion er en Function Declaration eller et Function Expression:
-1;
function func() {
console.log('!');
}
Bestem om den præsenterede funktion er en Function Declaration eller et Function Expression:
-1
function func() {
console.log('!');
}
Bestem om den præsenterede funktion er en Function Declaration eller et Function Expression:
1
function func() {
console.log('!');
}
Bestem om den præsenterede funktion er en Function Declaration eller et Function Expression:
-1-
function func() {
console.log('!');
}