Funktioilla tarkoitetaan ohjelmarakenteita joille on määritelty tiettyjä tehtäviä (algoritmeja) ja funktio voidaan ottaa
ns funktiokutsulla käyttöön.
- funktio suorittamiseen siirrytään funktiokutsulla - funktiolla on jonkin tai joitain sille ohjelmoitsija koodaamalla määräämiä tehtäviä - funktio voi sijaita koodauksessa eri kohdassa kuin sitä kutsuva koodi, katso täältä
omaOhjelm_1(4,3)
funktioon omaOhjelm_1()
numero-arvot 4 ja 3.luku1
ja luku2
, laskutoimitus tehdään
return
-osassa.return
-käskyllä näytettäväksi siinä kohtaa mistä funktioon siirryttiin:
<p id="koe1"></p>
<script>
document.getElementById("koe1").innerHTML =
"Funktio laski kertolaskun:<br>" + omaOhjelm_1(4, 3);
function omaOhjelm_1(luku1, luku2) {
return luku1 * luku2;
}
</script>
Tulos www-sivulla:
kolmeSarjaan()
funktioon. Funktiossa suoritetaan yhteenlasku ja tulos sijoitetaan Rsarja
-muuttujaan.return
-osalla palautetaan Rsarja
-muuttujassa oleva tieto näytettäväksi siinä kohtaa mistä funktioon siirryttiin:
<p id="koe2"></p>
<script>
var R1=100, R2=70, R3=25, Rsarja;
function kolmeSarjaan() {
Rsarja=R1+R2+R3;
return Rsarja;
}
document.getElementById("koe2").innerHTML = kolmeSarjaan(R1,R2,R3);
</script>
Tulos www-sivulla:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h2>JavaScript funktiot</h2>
<p>Funktio joka muuttaa Fahrenheit-asteet Celsius-asteiksi:</p>
<p id="koe3"></p>
<script>
function muunnaAsteiksi(farenheit) {
return (5/9) * (farenheit-32);
}
document.getElementById("koe3").innerHTML = muunnaAsteiksi(77);
</script>
</body>
</html>
JavaScript-osan tulos www-sivulla:
Toisenlainen tapa käyttää funktiota, verojen laskeminen annetusta hinnasta:
<p id="koe4"></p>
<script>
function laskeALV(hinta,lkv) {
var verot = hinta * (lkv/100);
return verot;
}
var hinta = 1000;
var lkv = 24;
document.getElementById("koe4").innerHTML =
"Kun arvonlisävero on 24 % <br>" +
"Hinta " + hinta + " e<br>" +
"Verot " + laskeALV(hinta,lkv) + " e";
</script>
Tulos www-sivulla:
Taulukon käyttäminen funktiossa:
<p id="koe5"></p>
<script>
var arvot = [1,2,3];
var tulos;
function omaTaulu() {
tulos = arvot[0]+arvot[1]+arvot[2];
return tulos;
}
document.getElementById("koe5").innerHTML = omataulu(arvot);
</script>
Tulos www-sivulla:
Funktioissa voidaan käyttää paikallisia-muuttujia ja/tai globaaleja-muuttujia.
Paikallinen-muuttuja sijaitsee funktion sisällä, jolloin se ei ole suoraan käytettävissä funktion ulkopuolella:
<p id="koe6"></p>
<script>
omaMuuttuja();
document.getElementById("koe6").innerHTML =
"Muuttuja automerkki on tyypiltään " + typeof autoMerkki;
function omaMuuttuja() {
var autoMerkki = "Maserati"; //muuttuja funktion sisällä
}
</script>
Tulos www-sivulla:
Pienellä muunnoksella paikallinen-muuttuja saadaan "näkymään" funktion ulkopuolelle:
<p id="koe7"></p>
<script>
document.getElementById("koe7").innerHTML =
"Muuttuja automerkki on " + omaMuuttuja();
function omaMuuttuja() {
var autoMerkki = "Maserati";
return autoMerkki;
}
</script>
Tulos www-sivulla:
Globaali-muuttuja sijaitsee funktion ulkopuolella, jolloin se on käytettävissä funktiossa ja funktion ulkopuolella:
(Huomaa, esimerkissä kaksi www-sivulle näyttämisen id-tunnistetta)
<p id="koe8A"></p>
<p id="koe8B"></p>
<script>
var jokuMopo = "Alfa Romeo";
document.getElementById("koe8A").innerHTML =
"Auton merkki on " + jokuMopo;
omaMakaroni();
function omaMakaroni() {
document.getElementById("koe8B").innerHTML =
"Funktiossakin auton merkki on " + jokuMopo;
}
</script>
Tulos www-sivulla:
Funktion sisällä olevan muuttujan saa globaaliksi jättämällä sen edestä var-termin pois:
<p id="koe9"></p>
<script>
pikkuJekku();
document.getElementById("koe9").innerHTML = "Tämä olikin globaali-muuttuja: " + autonNimi;
function pikkuJekku() {
autonNimi = "Morris Mini"; //Jättämällä var-määrite pois, muuttuja muuttuu globaaliksi
}
</script>
Tulos www-sivulla:
Globaali-muuttuja voidaan näyttää www-sivulle myös näin:
<p id="koe10"></p>
<script>
var koneMERKKI = "BOSCH PBH 2100 RE";
// näyttäminen window.koneMERKKI-koodilla
document.getElementById("koe10").innerHTML = "Poravasara " + window.koneMERKKI;
</script>
Tulos www-sivulla: