JavaScript-funksjoner er definert med nøkkelordetfunction
.
du kan bruke en funksjonsdeklarasjon eller et funksjonsuttrykk.
Funksjonsdeklarasjoner
Tidligere i denne opplæringen lærte du at funksjoner er deklarert med følgende syntaks:
/ / kode som skal utføres
}
Deklarerte funksjoner utføres ikke umiddelbart. De er «lagret for senere bruk», og vil bli utført senere, når de blir påkalt (påkalt).
Eksempel
retur a * b;
}
Prøv Det Selv »
Semikolon brukes til å skille kjørbare JavaScript-setninger.
siden en funksjonsdeklarasjon ikke er en kjørbar setning, er det ikke vanlig å avslutte den med et semikolon.
Funksjonsuttrykk
En JavaScript-funksjon kan også defineres ved hjelp av et uttrykk.
et funksjonsuttrykk kan lagres i en variabel:
Eksempel
Prøv Selv «
etter at et funksjonsuttrykk er lagret i en variabel, kan variabelen brukes som en funksjon:
Eksempel
var z = x(4, 3);
Prøv Det Selv »
funksjonen ovenfor er faktisk en anonym funksjon (en funksjon uten navn).
Funksjoner lagret i variabler trenger ikke funksjonsnavn. De blir alltid påkalt (kalt) ved hjelp av variabelnavnet.
funksjonen ovenfor slutter med et semikolon fordi den er en del av en kjørbar setning.
Funksjonen () Konstruktøren
Som du har sett i de forrige eksemplene, Er JavaScript-funksjoner definert med function
– søkeordet.
Funksjoner kan også defineres med en innebygd JavaScript-funksjonskonstruktør kalt Function()
.
Eksempel
var x = myFunction(4, 3);
Prøv Det Selv »
du trenger faktisk ikke å bruke funksjonskonstruktøren. Eksemplet ovenfor er det samme som å skrive:
Eksempel
var x = myFunction(4, 3);
Prøv Det Selv »
Mesteparten av tiden kan du unngå å bruke new
søkeordet I JavaScript.
Funksjon Heising
Tidligere i denne opplæringen lærte du om «heising» (JavaScript Heising).
Heising Er JavaScript standard virkemåte for å flytte erklæringer til toppen av gjeldende omfang.
Heising gjelder variable deklarasjoner og funksjonsdeklarasjoner.
På grunn Av Dette Kan JavaScript-funksjoner kalles før de deklareres:
funksjon myFunction(y) {
retur y * y;
}
Funksjoner definert ved hjelp av et uttrykk er ikke heist.
Selvpåberedende Funksjoner
Funksjonsuttrykk kan gjøres «selvpåberedende».
et selvpåberedende uttrykk startes automatisk, uten å bli kalt.
Funksjonsuttrykk kjøres automatisk hvis uttrykket etterfølges av ().
du kan ikke selv påkalle en funksjonsdeklarasjon.
du må legge til parenteser rundt funksjonen for å indikere at det er et funksjonsuttrykk:
Eksempel
var x = » Hei!!»; / / Jeg vil påkalle meg selv
})();
Prøv Det Selv »
funksjonen ovenfor er faktisk en anonym selvkallende funksjon (funksjon uten navn).
Funksjoner Kan Brukes Som Verdier
JavaScript-funksjoner kan brukes som verdier:
Eksempel
returner a * b;
}
var x = myFunction(4, 3);
Prøv Det Selv «
JavaScript-funksjoner kan brukes i uttrykk:
Eksempel
returner a * b;
}
var x = myFunction(4, 3) * 2;
Prøv Det Selv «
Funksjoner Er Objekter
typeof
operatøren i JavaScript returnerer «funksjon» for funksjoner.
Men JavaScript-funksjoner kan best beskrives som objekter.
JavaScript-funksjoner har både egenskaper og metoder.
egenskapen arguments.length
returnerer antall argumenter mottatt da funksjonen ble aktivert:
Eksempel
retur argumenter.lengde;
}
Prøv Det Selv »
toString()
metoden returnerer funksjonen som en streng:
Eksempel
returner a * b;
}
var txt = myFunction.toString ();
Prøv Det Selv »
en funksjon definert som egenskapen til et objekt, kalles en metode til objektet.
en funksjon som er utformet for å skape nye objekter, kalles en objektkonstruktør.
Pilfunksjoner
Pilfunksjoner gir en kort syntaks for å skrive funksjonsuttrykk.
du trenger ikke nøkkelordet function
, nøkkelordet return
og klammeparentesene.
Eksempel
var x = funksjon(x, y) {
retur x * y;
}
// ES6
const x = (x, y) =>x * y;
Prøv Det Selv »
Pilfunksjoner har ikke egne this
.De er ikke godt egnet for å definere objektmetoder.
Pilfunksjoner heises ikke. De må defineres før de brukes.
Bruk av const
er sikrere enn å bruke var
, fordi et funksjonsuttrykk alltid er konstant verdi.
du kan bare utelate nøkkelordet return
og klammeparentesene hvis funksjonen er en enkelt setning. På grunn av dette kan det være en god vane å alltid holde dem:
Eksempel
Prøv Det Selv »
Pilfunksjoner støttes ikke i IE11 eller tidligere.