ECMAScript-funktioiden yleiskatsaus

Mitä funktio on?

Funktio on joukko lauseita, jotka voidaan suorittaa milloin tahansa ja missä tahansa.

Funktio on ECMAScriptin ydin.

Funktio määritellään seuraavasti: avainsana function, funktion nimi, parametrien joukko ja sulkeiden sisällä oleva suoritettava koodi.

Funktion peruslauseke on tällainen:

function functionName(arg0, arg1, ... argN) {
  statements
}

Esimerkiksi:

function sayHi(sName, sMessage) {
  alert("Hello " + sName + sMessage);
}

Miten kutsua funktiota?

Funktio voidaan kutsua sen nimellä ja parametrien kanssa, jos on useita parametreja.

Jos haluat kutsua yllä olevaa funktiota, voit käyttää seuraavaa koodia:

sayHi("David", " Nice to meet you!")

Kutsuttuun funktioon sayHi() luodaan varoitusikkuna. VoitKokeile tätä esimerkkiä itse.

Miten funktio palauttaa arvon?

Funktio sayHi() ei palauta arvoa, mutta sitä ei tarvitse erityisesti ilmoittaa (kuten Java:ssa void-käytössä).

Vaikka funktio todella palauttaa arvon, sitä ei tarvitse ilmoittaa selvästi. Funktio tarvitsee vain return-operaattorin ja halutun palautettavan arvon.

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
}

Seuraava koodi asettaa sum-funktion palauttaman arvon muuttujaan:

var iResult = sum(1,1);
alert(iResult);	// Tulostaa "2"

Toinen tärkeä käsite on, että kuten Java:ssa, funktio lopettaa heti koodin suorittamisen, kun se on suorittanut return-lauseen. Siksi return-lauseen jälkeen olevaa koodia ei suoriteta.

Esimerkiksi, seuraavassa koodissa alert-ikkuna ei näy:

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
  alert(iNum1 + iNum2);
}

Funktiossa voi olla useita return-lauseita, kuten seuraavassa esimerkissä:

function diff(iNum1, iNum2) {
  if (iNum1 > iNum2) {
    return iNum1 - iNum2;
  }
    return iNum2 - iNum1;
  }
}

Yllä oleva funktio palauttaa kahden luvun erotuksen. Tämä voidaan tehdä vain suuremman luvun vähentämällä pienemmästä luvusta, joten if-lauseella päätetään, mikä return-lause toteutetaan.

Jos funktio ei palauta arvoa, voit kutsua ilman parametreja olevaa return-operaattoria milloin tahansa poistua funktiosta.

Esimerkiksi:

function sayHi(sMessage) {
  if (sMessage == "bye") {
    return;
  }
  alert(sMessage);
}

Tässä koodissa, jos sMessage on arvo "bye", varoitusikkuna ei näy koskaan.

Huomautus:Jos funktio ei palauta arvoa selvästi tai kutsuu ilman parametreja olevaa return-lauseketta, se todella palauttaa arvon undefined.