JavaScript-funktioner definieras med nyckelordetfunction
.
Du kan använda en funktionsdeklaration eller ett funktionsuttryck.
funktionsdeklarationer
tidigare i den här handledningen lärde du dig att funktioner deklareras med följande syntax:
//kod som ska utföras
}
deklarerade funktioner utförs inte omedelbart., De ”sparas för senare användning”, och kommer att utföras senare, när de åberopas (kallas På).
exempel
return a * b;
}
prova själv ”
semikolon används för att separera körbara JavaScript-satser.
eftersom en funktionsdeklaration inte är ett körbart uttalande är det inte vanligt att avsluta det med ett semikolon.
funktionsuttryck
en JavaScript-funktion kan också definieras med ett uttryck.,
ett funktionsuttryck kan lagras i en variabel:
exempel
prova själv ”
Efter att ett funktionsuttryck har lagrats i en variabel kan variabeln användas som en funktion:
exempel
var z = x(4, 3);
prova själv ”
funktionen ovan är faktiskt en anonym funktion (en funktion utan namn).
funktioner som lagras i variabler behöver inte funktionsnamn. De anropas alltid (kallas) med variabelnamnet.,
funktionen ovan avslutas med ett semikolon eftersom det är en del av ett exekverbart program.
funktionen() konstruktören
som du har sett i de tidigare exemplen definieras JavaScript-funktioner med nyckelordetfunction
.
funktioner kan också definieras med en inbyggd JavaScript – funktionskonstruktor som heter Function()
.,
exempel
var X = myFunction(4, 3);
prova själv ”
du behöver faktiskt inte använda funktionskonstruktorn. Exemplet ovan är detsamma som att skriva:
exempel
var X = myFunction(4, 3);
prova själv ”
För det mesta kan du undvika att använda nyckelordetnew
I JavaScript.,
Function hissa
tidigare i den här handledningen lärde du dig om ”hissa” (JavaScript hissa).
lyftning är JavaScript: s standardbeteende att flytta deklarationer till toppen av det aktuella tillämpningsområdet.
lyftning gäller variabeldeklarationer och funktionsdeklarationer.
På grund av detta kan JavaScript-funktioner anropas innan de deklareras:
function myFunction(y) {
return y * y;
}
funktioner som definieras med ett uttryck lyfts inte.,
funktioner för Självindrivning
funktionsuttryck kan göras ”självindrivning”.
ett självinropsuttryck anropas (startas) automatiskt utan att anropas.
funktionsuttryck körs automatiskt om uttrycket följs av ().
Du kan inte själv åberopa en funktionsdeklaration.
Du måste lägga till parenteser runt funktionen för att indikera att det är ett funktionsuttryck:
exempel
var X = ”Hej!!,”;//Jag kommer att åberopa mig själv
}) ();
prova det själv ”
funktionen ovan är faktiskt en anonym självinkallningsfunktion (funktion utan namn).,funktioner kan användas som värden
JavaScript-funktioner kan användas som värden:
exempel
returnera a * b;
}
var X = myFunction(4, 3);
prova själv ”
JavaScript-funktioner kan användas i uttryck:
exempel
return a * b;
}
var X = myfunction(4, 3) * 2;
prova själv ”
funktioner är objekt
typeof
operatören i JavaScript returnerar ”funktion” för funktioner.,
men JavaScript-funktioner kan bäst beskrivas som objekt.
JavaScript-funktioner har både egenskaper och metoder.
egenskapenarguments.length
returnerar antalet mottagna argument när funktionen anropades:
exempel
returargument.
metoden toString()
returnerar funktionen som en sträng:
exempel
return a * b;
}
var txt = myFunction.,toString ();
prova det själv ”
en funktion som definieras som egenskapen för ett objekt, kallas en metod för objektet.
en funktion som är utformad för att skapa nya objekt kallas en objektkonstruktör.
Pilfunktioner
Pilfunktioner tillåter en kort syntax för att skriva funktionsuttryck.
du behöver inte nyckelordet function
, nyckelordet return
och de lockiga konsolerna.,
exempel
var X = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;
prova själv ”
Pilfunktionerna har inte sina egna this
.De är inte väl lämpade för att definiera objektmetoder.
Pilfunktionerna hissas inte. De måste definieras innan de används.
att användaconst
är säkrare än att användavar
, eftersom ett funktionsuttryck alltid är konstant värde.,
Du kan bara utelämna nyckelordetreturn
och de lockiga fästena om funktionen är ett enda uttryck. På grund av detta kan det vara en bra vana att alltid hålla dem:
exempel
prova själv ”
Pilfunktionerna stöds inte i IE11 eller tidigare.