JAVASCRIPT Funkcje
Wyodrębnione fragmenty programu, które mogą być wielokrotnie wywoływane z różnych jego miejsc.
Najprostszym przykładem funkcji jest wypisująca na ekran zadany tekst.
function przywitaj(){
document.write("Cześć");
}
przywitaj();
Nie przyjmowała ona żadnych wartości parametrów wejściowych oraz nic nie zwracała (return).
Została wywołana za pomocą instrukcji przywitaj(); i dokładnie w tym miejscu programu został wypisany tekst Cześć.
Rozwińmy nieco najprostszy przykład dodając parametr wejściowy, jakim jest imię.
function przywitaj_imie(imie){
document.write("Cześć " + imie);
}
przywitaj_imie("Gargamel");
Rezultatem działania powyższego skryptu będzie wypisanie na ekran: Witaj Gargamel.
Kolejnym przykładem będzie wywołanie naszą funkcją alarm działanie metody alert, wywołującej na ekran okienko z zadanym komunikatem.
function alarm(){
alert("Alarm włączony!");
}
Funkcję naszą wywołamy wykorzystując metodę onclick na przycisku.
<button onclick="alarm()">Włącz alarm</button>
Kolejny przykład przyjmuje wartość parametru wejściowego o nazwie liczba, zwraca natomiast efekt sprawdzenia, czy liczba jest parzysta. Efektem wywołania funkcji będzie true w przypadku liczby parzystej, bądź false w przeciwnym razie.
function czyparzysta(liczba){
return liczba % 2 === 0;
}
czyparzysta(30); // true
czyparzysta(21); // false
Aby otrzymać wartość bezwzględną z zadanej liczby wewnątrz funkcji wykorzystamy instrukcję warunkową.
function bezwzgledna(x){
if(x<0) x*=-1;
return x;
}
bezwzgledna(-4); // 4
Nieco bardziej skomplikowanym przykładem jest funkcja wywołująca samą siebie, aż do spełnienia warunku i zwrócenia wyniku. Jest to przykład funkcji rekurencyjnej obliczającej silnię z zadanej liczby.
function silnia(n) {
if (n === 0) {
return 1;
}
return n * silnia(n - 1);
}
silnia(5); // 120
Na koniec trzy przykłady stworzenia funkcji.
function suma(a, b) {
return a + b;
}
var suma2 = function(a, b) {
return a + b;
}
var suma3 = (a, b) => a + b;
document.write(typeof suma1 === 'function'); // => true
document.write(typeof suma2 === 'function'); // => true
document.write(typeof suma3 === 'function'); // => true