JavaScript Function Definition
- Previous page JS object reference
- Next page JS function parameters
JavaScript-funktioner defineres ved function
nøgleorddefinere.
Du kan bruge funktionerklæringeller funktionUtryk。
funktionserklæring
I dette kursus lærte du tidligere ved hjælp af følgende syntakserklæringFunktion:
function funktionsnavn(parametre) { Koden der skal udføres }
De funktioner, der er deklarerede, udføres ikke direkte. De 'saves til senere brug' og vil blive udført senere, når de kaldes.
Example
function myFunction(a, b) { return a * b; }
Semicolons bruges til at adskille udførbare JavaScript-sætninger.
På grund af funktionenerklæringer ikke udførbare sætninger, og afsluttes sjældent med semicolon.
funktionsekspressioner
JavaScript-funktioner kan også brugeUtrykfor at definere.
Funktionsekspressioner kan gemmes i variabler:
Example
var x = function (a, b) {return a * b};
Efter at have gemt funktionsekspressionen i en variabel, kan denne variabel bruges som en funktion:
Example
var x = function (a, b) {return a * b}; var z = x(4, 3);
den ovennævnte funktion er faktisk enAnonym funktion(navnløse funktioner)。
Funktioner gemt i variabler har ikke brug for et navn. De bruges altid ved hjælp af variabelnavnet.
Den ovenstående funktion afsluttes med semicolon, fordi den er en del af en udførbare sætning.
Function() konstruktor
Som du så i tidligere eksempler, defineres JavaScript-funktioner ved function
nøgleord defineret.
Funktioner kan også defineres ved hjælp af Function()
de indbyggede JavaScript-funktionskonstruktører til at definere.
Example
var myFunction = new Function("a", "b", "return a * b"); var x = myFunction(4, 3);
du faktisk ikke har brug for funktionskonstruktøren. Det er også okay at skrive det sådan:
Example
var myFunction = function (a, b) {return a * b}; var x = myFunction(4, 3);
i de fleste tilfælde kan du undgå at bruge new
nøgleord.
funktionshoisting
i denne trin-for-trin guide har du lært om "lifting" (hoisting) tidligere.
Hoisting er, hvordan JavaScripterklæringstandardbetingelse for at flytte til toppen af den nuværende kontekst.
Hoisting anvendes på variabeldeklarationer og funktionserklæringer.
på grund af dette kan JavaScript-funktioner kaldes før deres erklæring:
myFunction(5); function myFunction(y) { return y * y; }
funktioner defineret ved udtryk bliver ikke løftet.
selvkalderfunktion
funktionsekspressioner kan være "selvkalder".
selvkalderudtryk kaldes automatisk ( Starter ) uden at blive kaldt.
funktionsekspressioner udføres automatisk, hvis der følger ()
。
du kan ikke selvkalde en funktionserklæring.
du skal tilføje parenteser omkring funktionen for at indikere, at det er en funktionsekspression:
Example
(function () { var x = "Hello!!"; // Jeg vil kalde mig selv }();
den ovennævnte funktion er faktisk enanonyme selvkalderfunktioner(navnløse funktioner)。
funktioner kan bruges som værdier
JavaScript-funktioner kan bruges som værdier:
Example
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3);
JavaScript-funktioner kan bruges i udtryk:
Example
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3) * 2;
funktioner er objekter
i JavaScript typeof
operatoren returnerer "function
"。
men det er bedst at beskrive JavaScript-funktioner som objekter.
er JavaScript-funktioner alleegenskaberogmetoden。
arguments.length
vil returnere antallet af argumenter, der modtages, når funktionen kaldes:
Example
function myFunction(a, b) { return arguments.length; }
toString()
metoden returnerer en streng som funktion:
Example
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();
Functions defined as object properties are called object methods.
Functions designed to create new objects are called object constructors (object constructors).
Arrow functions
Arrow functions allow the use of a concise syntax to write function expressions.
You do not need the function keyword, return keyword, and curly braces.
Example
// ES5 var x = function(x, y) { return x * y; } // ES6 const x = (x, y) => x * y;
Arrow functions do not have their own this. They are not suitable for defining object methods.
Arrow functions are not hoisted. They must be defined before they are used.
Using const is safer than using var because function expressions are always constant values.
If the function is a single statement, then only the return keyword and curly braces can be omitted. Therefore, it may be a good habit to keep them:
Example
const x = (x, y) => { return x * y };
IE11 or earlier versions do not support arrow functions.
- Previous page JS object reference
- Next page JS function parameters