ECMAScript funktioner översikt
- Föregående sida switch-sats
- Nästa sida arguments-objektet
Vad är en funktion?
Funktioner är en uppsättning instruktioner som kan köras när som helst och var som helst.
Funktioner är kärnan i ECMAScript.
Funktioner deklareras på detta sätt: nyckelordet function, namnet på funktionen, en uppsättning parametrar och det kod som ska köras inom parenteser.
Funktionernas grundläggande syntax ser ut så här:
function functionName(arg0, arg1, ... argN) { statements }
Exempel:
function sayHi(sName, sMessage) { alert("Hello " + sName + sMessage); }
Hur anropar man en funktion?
Funktioner kan anropas genom att lägga till namnet på funktionen och parametrarna inom parenteser, om det finns flera parametrar.
Om du vill anropa den funktionen från föregående exempel, kan du använda följande kod:
sayHi("David", "Nice to meet you!")
Anrop av funktionen sayHi() genererar ett varningsfönster. Du kanProva själv detta exempel.
Hur returnerar en funktion värden?
Funktionen sayHi() returnerar inget värde, men det behöver inte särskilt deklareras (som i Java med void).
Även om en funktion faktiskt har ett värde behöver den inte uttryckligen deklareras. Funktionen behöver bara använda return-operatorn följt av det värde som ska returneras.
function sum(iNum1, iNum2) { return iNum1 + iNum2; }
Nedanstående kod tilldelar värdet som returneras av sum-funktionen till en variabel:
var iResult = sum(1,1); alert(iResult); //Utskrift "2"
En annan viktig koncept är att, liksom i Java, stoppar en funktion omedelbart efter att ha utfört en return-sats. Därför kommer ingen kod efter return-satsen att köras.
Som exempel, i följande kod kommer alert-fönstret inte att visas:
function sum(iNum1, iNum2) { return iNum1 + iNum2; alert(iNum1 + iNum2); }
En funktion kan ha flera return-satser, som visas nedan:
function diff(iNum1, iNum2) { if (iNum1 > iNum2) { return iNum1 - iNum2; } else { return iNum2 - iNum1; } }
Ovanstående funktion används för att returnera skillnaden mellan två tal. För att uppnå detta måste det större talet subtraheras från det mindre talet, därför används en if-sats för att avgöra vilken return-sats som ska köras.
Om en funktion inte har ett returvärde, kan man anropa en return-operator utan parametrar för att när som helst avsluta funktionen.
Exempel:
function sayHi(sMessage) { if (sMessage == "bye") { return; } alert(sMessage); }
I denna kod, om sMessage är lika med "bye", kommer varningen aldrig att visas.
Kommentar:Om en funktion inte har en tydlig returvärde eller anropar en return-sats utan parametrar, är det faktiska returvärdet undefined.
- Föregående sida switch-sats
- Nästa sida arguments-objektet