JavaScript-funktioner er defineret med nøgleordet function
.
du kan bruge en funktionserklæring eller et funktionsudtryk.
Funktionserklæringer
tidligere i denne tutorial lærte du, at funktioner erklæres med følgende syntaks:
/ / kode, der skal udføres
}
deklarerede funktioner udføres ikke straks. De er “gemt til senere brug”, og vil blive henrettet senere, når de påberåbes (kaldet på).
eksempel
retur a * b;
}
prøv det selv ”
semikoloner bruges til at adskille eksekverbare JavaScript-udsagn.
da en funktionsdeklaration ikke er en eksekverbar sætning, er det ikke almindeligt at afslutte den med et semikolon.
Funktionsudtryk
en JavaScript-funktion kan også defineres ved hjælp af et udtryk.
et funktionsudtryk kan gemmes i en variabel:
eksempel
prøv det selv “
når et funktionsudtryk er blevet gemt i en variabel, kan variablen bruges som en funktion:
eksempel
var H = H (4, 3);
prøv det selv ”
funktionen ovenfor er faktisk en anonym funktion (en funktion uden navn).
funktioner, der er gemt i variabler, behøver ikke funktionsnavne. De påberåbes altid (kaldes) ved hjælp af variabelnavnet.
funktionen ovenfor slutter med et semikolon, fordi det er en del af en eksekverbar sætning.
funktionen () konstruktør
som du har set i de foregående eksempler, defineres JavaScript-funktioner med nøgleordet function
.
funktioner kan også defineres med en indbygget JavaScript-funktionskonstruktør kaldet Function()
.
eksempel
var = myFunction(4, 3);
prøv det selv ”
du behøver faktisk ikke bruge funktionskonstruktøren. Eksemplet ovenfor er det samme som at skrive:
eksempel
var = myFunction(4, 3);
prøv det selv”
det meste af tiden kan du undgå at bruge nøgleordet new
i JavaScript.
funktion hejsning
tidligere i denne tutorial lærte du om “hejsning” (JavaScript hejsning).
hejsning er JavaScript ‘ s standardadfærd for at flytte erklæringer til toppen af det nuværende omfang.
hejsning gælder for variable erklæringer og funktionserklæringer.
på grund af dette kan JavaScript-funktioner kaldes, før de erklæres:
funktion myfunktion (y) {
retur y * y;
}
funktioner defineret ved hjælp af et udtryk hejses ikke.
Selvpåkaldende funktioner
Funktionsudtryk kan laves “selvpåkaldelse”.
et selvudråbende udtryk påberåbes (startes) automatisk uden at blive kaldt.
Funktionsudtryk udføres automatisk, hvis udtrykket efterfølges af ().
du kan ikke selv påberåbe en funktionserklæring.
du skal tilføje parenteser omkring funktionen for at indikere, at det er et funktionsudtryk:
eksempel
var = ” Hej!!”; / / Jeg vil påberåbe mig selv
})();
prøv det selv ”
funktionen ovenfor er faktisk en anonym selvpåkaldende funktion (funktion uden navn).
funktioner kan bruges som værdier
JavaScript-funktioner kan bruges som værdier:
eksempel
retur a * b;
}
var = myfunktion (4, 3);
prøv det selv “
JavaScript-funktioner kan bruges i udtryk:
eksempel
retur a * b;
}
var = myfunktion(4, 3) * 2;
prøv det selv ”
funktioner er objekter
operatøren typeof
i JavaScript returnerer “funktion” for funktioner.
men JavaScript-funktioner kan bedst beskrives som objekter.
JavaScript-funktioner har både egenskaber og metoder.
egenskaben arguments.length
Returnerer antallet af argumenter, der blev modtaget, da funktionen blev påberåbt:
eksempel
returargumenter.længde;
}
prøv det selv ”
metoden toString()
returnerer funktionen som en streng:
eksempel
retur a * b;
}
var tekst = myfunktion.toString ();
prøv det selv ”
en funktion defineret som et objekts egenskab, kaldes en metode til objektet.
en funktion designet til at oprette nye objekter, kaldes en objektkonstruktør.
Pilfunktioner
Pilfunktioner tillader en kort syntaks til skrivning af funktionsudtryk.
du behøver ikke nøgleordet function
, nøgleordet return
og de krøllede parenteser.
eksempel
var = funktion (h, y) {
return * y;
}
// ES6
const = (h, y) => h * y;
prøv det selv ”
Pilfunktioner har ikke deres egne this
.De er ikke velegnede til at definere objektmetoder.
Pilfunktioner hejses ikke. De skal defineres, før de bruges.
brug af const
er sikrere end brug af var
, fordi et funktionsudtryk altid er konstant værdi.
du kan kun udelade nøgleordet return
og de krøllede parenteser, hvis funktionen er en enkelt sætning. På grund af dette kan det være en god vane at altid holde dem:
eksempel
prøv det selv ”
Pilfunktioner understøttes ikke i IE11 eller tidligere.