JavaScript-funktiot määritelläänfunction
– hakusanalla.
voit käyttää funktioilmoitusta tai funktion lauseketta.
Funktioilmoitukset
aiemmin tässä opetusohjelmassa opit, että funktiot julistetaan seuraavalla syntaksilla:
/ / suoritettava koodi
}
ilmoitettuja toimintoja ei suoriteta välittömästi. Ne ”tallennetaan myöhempää käyttöä varten”, ja ne toteutetaan myöhemmin, kun niihin vedotaan (pyydetään).
esimerkki
return a * b;
}
Kokeile itse ”
puolipisteitä käytetään suoritettavien JavaScript-lausekkeiden erottamiseen toisistaan.
koska funktioilmoitus ei ole suoritettava lausunto, ei ole tavallista päättää sitä puolipisteeseen.
Funktion lausekkeet
JavaScript-funktio voidaan määritellä myös lausekkeen avulla.
funktion lauseke voidaan tallentaa muuttujaan:
esimerkki
kokeile sitä itse ”
kun funktion lauseke on tallennettu muuttujaan, muuttujaa voidaan käyttää funktiona:
esimerkki
var z = x(4, 3);
Kokeile itse ”
yllä oleva funktio on itse asiassa nimetön funktio (funktio ilman nimeä).
muuttujiin tallennetut funktiot eivät tarvitse funktioiden nimiä. Niitä kutsutaan aina muuttujan nimellä.
yllä oleva funktio päättyy puolipisteeseen, koska se on osa suoritettavaa lausuntoa.
funktio () konstruktori
kuten aiemmissa esimerkeissä on nähty, JavaScript-funktiot määritellään function
– hakusanalla.
funktiot voidaan määritellä myös sisäänrakennetulla JavaScript-funktion konstruktorilla nimeltä Function()
.
esimerkki
var x = myFunction (4, 3);
kokeile sitä itse ”
sinun ei oikeastaan tarvitse käyttää funktion konstruktoria. Yllä oleva esimerkki on sama kuin kirjoittaminen:
esimerkki
var x = myFunction(4, 3);
Try it Yourself ”
useimmiten Javascriptissä voi välttää new
– hakusanan käyttöä.
Funktion nostaminen
aiemmin tässä tutoriaalissa opit ”nostamisesta” (JavaScript nostamisesta).
nostaminen on JavaScriptin oletuskäyttäytyminen siirrettäessä ilmoituksia nykyisen soveltamisalan yläosaan.
nostaminen koskee muuttuvia ilmoituksia ja tehtäväilmoituksia.
tämän vuoksi JavaScript-funktioita voidaan kutsua ennen niiden julistamista:
function myFunction(y) {
return y * y;
}
lausekkeen avulla määriteltyjä funktioita ei nosteta.
Itselaskevat funktiot
Funktiolausekkeet voidaan tehdä ”itselaskeviksi”.
itsestään kutsuva lauseke kutsutaan (käynnistetään) automaattisesti, ilman että sitä kutsutaan.
Funktion lausekkeet suoritetaan automaattisesti, jos lauseketta seuraa ().
et voi itse vedota funktioilmoitukseen.
funktion ympärille on lisättävä sulkeita, jotka osoittavat, että se on funktion lauseke:
esimerkki
var x = ” Hello!!”; / / Kutsun itseni
})();
kokeile sitä itse ”
yllä oleva funktio on itse asiassa nimetön itseään kutsuva funktio (funktio ilman nimeä).
funktioita voidaan käyttää arvoina
JavaScript-funktioita voidaan käyttää arvoina:
esimerkki
return A * b;
}
var x = myFunction (4, 3);
Kokeile itse ”
JavaScript-funktioita voidaan käyttää lausekkeissa:
esimerkki
return A * b;
}
var x = myFunction(4, 3) * 2;
Kokeile itse ”
funktiot ovat objekteja
typeof
operaattori Javascriptissä palauttaa funktioille ”funktion”.
mutta JavaScript-funktioita voidaan parhaiten kuvata objekteina.
JavaScript-funktioilla on sekä ominaisuuksia että menetelmiä.
arguments.length
ominaisuus palauttaa funktioon vetoamisen yhteydessä saatujen argumenttien määrän:
esimerkki
return-argumentit.pituus;
}
kokeile sitä itse ”
toString()
menetelmä palauttaa funktion merkkijonona:
esimerkki
return A * b;
}
var txt = myFunction.toString ();
Kokeile itse ”
funktiota, joka määritellään objektin ominaisuudeksi, kutsutaan menetelmäksi objektille.
funktiota, joka on suunniteltu uusien objektien luomiseen, kutsutaan objektin konstruktoriksi.
Arrow-funktiot
Arrow-funktiot mahdollistavat lyhyen syntaksin funktiolausekkeiden kirjoittamiseen.
et tarvitse function
hakusanaa, return
hakusanaa ja kiharasulkeita.
esimerkki
var x = funktio (x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;
Kokeile itse ”
Nuolifunktioilla ei ole omia this
.Ne eivät sovellu hyvin objektimenetelmien määrittelyyn.
Nuolifunktioita ei nosteta. Ne on määriteltävä ennen niiden käyttöä.
käyttäminen const
on turvallisempaa kuin var
käyttäminen, koska funktion lauseke on aina vakioarvo.
return
– hakusanan ja kihartimen voi jättää pois vain, jos funktio on yksittäinen lauseke. Tämän vuoksi voi olla hyvä tapa pitää ne aina:
esimerkki
Try it Yourself ”
Arrow-funktioita ei tueta IE11: ssä tai sitä aiemmissa versioissa.