JavaScript-funktion definitioner

JavaScript-funktioner definieras med nyckelordet function.

du kan använda en funktionsdeklaration eller ett funktionsuttryck.

funktionsdeklarationer

tidigare i denna handledning lärde du dig att funktioner deklareras med följande syntax:

funktion functionName (parametrar) {
/ / kod som ska köras
}

deklarerade funktioner utförs inte omedelbart. De ”sparas för senare användning” och kommer att utföras senare när de åberopas (uppmanas).

exempel

funktion myFunction (A, b) {
returnera a * b;
}

prova själv ”

semikolon används för att separera körbara JavaScript-uttalanden.
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

var x = funktion (A, b) {returnera a * b};

prova själv ”

efter att ett funktionsuttryck har lagrats i en variabel kan variabeln användas som en funktion:

exempel

var x = funktion (A, b) {return a * b};
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 (anropas) med variabelnamnet.

funktionen ovan slutar med ett semikolon eftersom det är en del av ett körbart uttalande.

Funktionskonstruktorn ()

som du har sett i tidigare exempel definieras JavaScript-funktioner med nyckelordet function.

funktioner kan också definieras med en inbyggd JavaScript-funktionskonstruktor som heter Function().

exempel

var myFunction = ny funktion(”A”, ”b”, ”return a * b”);
var x = myFunction(4, 3);

prova själv ”

du behöver faktiskt inte använda funktionskonstruktören. Exemplet ovan är detsamma som att skriva:

exempel

var myFunction = funktion (A, b) {returnera a * b};
var x = myFunction(4, 3);

prova själv ”

för det mesta kan du undvika att använda nyckelordet new i JavaScript.

funktion hissa

tidigare i denna handledning lärde du dig om ”hissa” (JavaScript hissa).

hissning är JavaScript: s standardbeteende för att flytta deklarationer till toppen av det aktuella omfånget.

lyftning gäller variabla deklarationer och funktionsdeklarationer.

på grund av detta kan JavaScript-funktioner anropas innan de deklareras:

minfunktion(5);
funktion minfunktion (y) {
returnera y * y;
}

funktioner som definieras med ett uttryck lyfts inte upp.

Självpåkallande funktioner

funktionsuttryck kan göras ”självpåkallande”.

ett självpåkallande uttryck anropas (startas) automatiskt utan att anropas.

funktionsuttryck körs automatiskt om uttrycket följs av ().

du kan inte själv åberopa en funktion deklaration.

du måste lägga till parenteser runt funktionen för att indikera att det är ett funktionsuttryck:

exempel

(funktion () {
var x = ” Hej!!”; / / Jag kommer att åberopa mig själv
})();

prova själv ”

funktionen ovan är faktiskt en anonym självpåkallande funktion (funktion utan namn).

funktioner kan användas som värden

JavaScript-funktioner kan användas som värden:

exempel

funktion myFunction (A, b) {
returnera A * b;
}
var x = myFunction (4, 3);

prova själv ”

JavaScript-funktioner kan användas i uttryck:

exempel

funktion myFunction (A, b) {
returnera A * b;
}
var x = myFunction(4, 3) * 2;

prova själv ”

funktioner är objekt

operatören typeof i JavaScript returnerar ”funktion” för funktioner.

men JavaScript-funktioner kan bäst beskrivas som objekt.

JavaScript-funktioner har både egenskaper och metoder.

egenskapen arguments.length returnerar antalet argument som mottogs när funktionen anropades:

exempel

funktion myFunction(A, b) {
retur argument.längd;
}

prova själv ”

metoden toString() returnerar funktionen som en sträng:

exempel

funktion myFunction(A, b) {
returnera A * b;
}
var txt = myFunction.toString ();

prova själv ”

en funktion som definieras som egenskapen hos 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 parenteserna.

exempel

/ / ES5
var x = funktion (x, y) {
returnera x * y;
}
// ES6
const x = (x, y) => x * y;

prova själv ”

Pilfunktioner har inte sina egna this.De är inte väl lämpade för att definiera objektmetoder.

Pilfunktioner lyfts inte upp. De måste definieras innan de används.

att använda const är säkrare än att använda var, eftersom ett funktionsuttryck alltid är konstant värde.

du kan bara utelämna nyckelordet return och lockiga parenteser Om funktionen är en enda sats. På grund av detta kan det vara en bra vana att alltid behålla dem:

exempel

const x = (x, y) = > { return x * y };

prova själv ”

Pilfunktioner stöds inte i IE11 eller tidigare.

Lämna ett svar

Din e-postadress kommer inte publiceras.

More: