JavaScript-functies worden gedefinieerd met het function
trefwoord.
u kunt een functiedeclaratie of een functieuitdrukking gebruiken.
functie declaraties
eerder in deze tutorial, leerde u dat functies worden gedeclareerd met de volgende syntaxis:
// code uit te voeren
}
gedeclareerde functies worden niet onmiddellijk uitgevoerd., Ze worden “opgeslagen voor later gebruik”, en zullen later worden uitgevoerd, wanneer ze worden aangeroepen (opgeroepen).
voorbeeld
retourneer a * b;
}
probeer het zelf “
puntkomma ‘ s worden gebruikt om uitvoerbare Javascript-statements te scheiden.
omdat een functie declaratie geen uitvoerbaar statement is, is het niet gebruikelijk om het te beëindigen met een puntkomma.
functie-expressies
een JavaScript-functie kan ook worden gedefinieerd met behulp van een expressie.,
Een functie-expressie kan worden opgeslagen in een variabele:
Voorbeeld
Probeer het Zelf ”
Na een functie-expressie is opgeslagen in een variabele, de variabele kan gebruikt worden als een functie:
Voorbeeld
var z = x(4, 3);
Probeer het Zelf ”
De functie hierboven is eigenlijk een anonieme functie (een functie zonder naam).
In variabelen opgeslagen functies hebben geen functienamen nodig. Ze worden altijd aangeroepen (aangeroepen) met behulp van de variabele naam.,
De functie hierboven eindigt met een puntkomma omdat het een onderdeel is van een uitvoerbaar statement.
the Function() Constructor
zoals u in de vorige voorbeelden hebt gezien, worden JavaScript-functies gedefinieerd met het sleutelwoord function
.
functies kunnen ook worden gedefinieerd met een ingebouwde JavaScript-functieconstructor genaamd Function()
.,
voorbeeld
var x = myFunction(4, 3);
probeer het zelf ”
eigenlijk hoeft u de Function constructor niet te gebruiken. Het voorbeeld hierboven is hetzelfde als schrijven:
voorbeeld
var x = myFunction (4, 3);
probeer het zelf ”
meestal kunt u het new
sleutelwoord in JavaScript vermijden.,
functie hijsen
eerder in deze tutorial, leerde u over “hijsen” (Javascript hijsen).
hijsen is JavaScript ‘ s standaard gedrag van het verplaatsen van declaraties naar de top van de huidige scope.
hijsen is van toepassing op variabele aangiften en op functionele aangiften.
hierdoor kunnen JavaScript-functies worden aangeroepen voordat ze worden gedeclareerd:
function myFunction(y) {
return y * y;
}
functies die met een expressie zijn gedefinieerd, worden niet gehesen.,
Zelfaanroepende functies
functie-expressies kunnen “zelfaanroepend”worden gemaakt.
een zelfaanroepende expressie wordt automatisch aangeroepen (gestart), zonder aangeroepen te worden.
functie-expressies worden automatisch uitgevoerd als de expressie wordt gevolgd door ().
u kunt een functie-declaratie niet zelf aanroepen.
u moet haakjes rond de functie toevoegen om aan te geven dat het een functieuitdrukking is:
voorbeeld
var x = ” Hallo!!,”;//I will calculate myself
}) ();
probeer het zelf ”
de bovenstaande functie is eigenlijk een anonieme zelfaanroepende functie (functie zonder naam).,
Functies Kunnen Worden Gebruikt als Waarden
JavaScript-functies kunnen worden gebruikt als waarden:
Voorbeeld
return a * b;
}
var x = myFunction(4, 3);
Probeer het Zelf ”
JavaScript-functies kunnen worden gebruikt in expressies:
Voorbeeld
return a * b;
}
var x = myFunction(4, 3) * 2;
Probeer het Zelf ”
Functies zijn Objecten
De typeof
operator in retourneert JavaScript “- functie” voor de functies.,
maar JavaScript-functies kunnen het best worden omschreven als objecten.
JavaScript-functies hebben zowel eigenschappen als methoden.
de eigenschap arguments.length
geeft het aantal ontvangen argumenten terug toen de functie werd aangeroepen:
voorbeeld
retourneer argumenten.length;
}
probeer het zelf ”
DetoString()
methode geeft de functie terug als een tekenreeks:
voorbeeld
retourneer a * b;
}
var txt = myFunction.,toString ();
probeer het zelf ”
een functie gedefinieerd als de eigenschap van een object, wordt een methode van het object genoemd.
Een functie die ontworpen is om nieuwe objecten te maken, wordt een object constructor genoemd.
Pijlfuncties
Pijlfuncties maken een korte syntaxis mogelijk voor het schrijven van functie-expressies.
u hebt het sleutelwoord function
niet nodig, het sleutelwoord return
en de accolades.,
voorbeeld
var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;
probeer het zelf ”
Pijlfuncties hebben geen eigen this
.Ze zijn niet goed geschikt voor het definiëren van objectmethoden.
Pijlfuncties worden niet gehesen. Ze moeten worden gedefinieerd voordat ze worden gebruikt.
het gebruik van const
is veiliger dan het gebruik van var
, omdat een functie-expressie altijd een constante waarde is.,
u kunt het sleutelwoord return
en de accolades alleen weglaten als de functie één statement is. Daarom zou het een goede gewoonte kunnen zijn om ze altijd te houden:
voorbeeld
probeer het zelf ”
Pijlfuncties worden niet ondersteund in IE11 of eerder.