Uttryck till vänster om funktion i JavaScript
Låt oss titta på följande kod:
+function func() {
console.log('!');
}
Som du redan vet är denna funktion ett funktionellt uttryck, trots att den har ett namn (vi har redan konstaterat att närvaron av ett namn inte är ett kriterium). Ta bort detta plus - och vi får Function Declaration:
function func() {
console.log('!');
}
Låt oss sätta + på raden före
funktionen - den blir igen Function Expression:
+
function func() {
console.log('!');
}
Och nu sätter vi siffran 1
och ett semikolon efter plustecknet - vår funktion blir Function
Declaration:
+1;
function func() {
console.log('!');
}
Varför är det så: för att på den första raden finns det ett färdigt kommando, avslutat med ett semikolon. Därför påverkar detta kommando inte vår funktion på något sätt.
Egentligen kan semikolonet tas bort, för i JavaScript är det inte obligatoriskt - funktionen förblir ändå Function Declaration:
+1
function func() {
console.log('!');
}
Men om man sätter ytterligare ett plus efter 1,
blir funktionen Function Expression:
+1+
function func() {
console.log('!');
}
Varför är det så: för att på den första raden finns det ett ofullständigt uttryck - det finns ett plus och efter det, ingenting. Därför antar JavaScript-tolken att detta plus hänför sig till raden under, det vill säga till vår funktion.
Om det på den första raden finns ett färdigt uttryck, så sätter JavaScript automatiskt ett semikolon efter det och detta uttryck påverkar inte vår funktion på något sätt.
Avgör om den presenterade funktionen är Function Declaration eller Function Expression:
-
function func() {
console.log('!');
}
Avgör om den presenterade funktionen är Function Declaration eller Function Expression:
-1;
function func() {
console.log('!');
}
Avgör om den presenterade funktionen är Function Declaration eller Function Expression:
-1
function func() {
console.log('!');
}
Avgör om den presenterade funktionen är Function Declaration eller Function Expression:
1
function func() {
console.log('!');
}
Avgör om den presenterade funktionen är Function Declaration eller Function Expression:
-1-
function func() {
console.log('!');
}