Funkcje
Funkcje to wydzielone bloki kodu przeznaczone do wykonywania określonych zadań.
Definiowanie funkcji
styl 1:
function naz_fun( )
{
// kod funkcji
}
styl 2:
var naz_fun = function( )
Przykład definicji
function uwaga( )
document.write(' *********<BR>');
document.write('* UWAGA *<BR>');
Miejsce definiowania
Sekcja HEAD
Sekcja BODY
Plik *.js
We wszystkich miejscach definicja
ma postać kodu JS typową
dla danego miejsca
Wywołanie funkcji
Może nastąpić w miejscu, gdzie znana jest już jej definicja, bo wcześniej wykonano skrypt z definicją.
Wywołanie funkcji ma postać typowego kodu JS, np.
naz_fun() ;
Funkcje z parametrami
Funkcje wymagające do działania parametrów, powinny w nagłówku mieć podaną listę parametrów formalnych. Ich typ nie jest przesądzony i zostanie określony dopiero przez parametry aktualne podane przy wywołaniu.
function trojkat(ile, co)
var i, j;
for( i = 1; i <= ile ; i++) // ile - wysokość trójkąta
for( j = 1; j <= i ; j++) document.write(co); // co - znak lub napis budujący trójkąt
document.write('<BR>');
Przykładowe wywołania:
trojkat (5, 'X'); // drukuje trójkąt ze znaków 'X' o wysokości 5
trojkat (p, '<B>' + 'X'); // drukuje trójkąt z pogrubionych znaków 'X' o wysokości p
Błąd parametrów może spowodować niewykonanie funkcji !!!
Funkcje zwracające wartość
Funkcje bez parametrów oraz z parametrami zwracają wynik przy pomocy instrukcji return.
Instrukcja return nawet bez wartości wyniku jest ostatnią instrukcją wukonywaną w obrębie funkcji.
return wynik;
Przykład:
function kostka()
return Math.floor(Math.random()*6+1);
function losowa(a, b)
var z = b - a + 1;
return Math.floor(Math.random()*z + a);
document.write(kostka());
r = kostka();
los = losowa (10, 20);
Funkcje nie zawierające instrukcji return zwracają wartość undefined. Można taką funkcję użyć bezkarnie np. w przypisaniu:
x = alert('Hallo'); // x dostaje wartość undefined
Funkcje zwracające wartość mogą być także wywołane tak, jakby nie zwracały wartości i nie skutkuje to błędem inrerpretera, np. :
Math.random(); // wartość funkcji "przepada"
Funkcje zagnieżdżone
Funkcja może korzystać z funkcji zdefiniowanej wewnątrz niej.
function dwie_kostki()
var a = kostka();
var b = kostka();
return a + ' i ' + b; // wynik jest napisem typu '2 i 6'
Funkcja wewnętrzna ma dostęp do parametrów i zmiennych funkcji zewnętrznej.
function diagonal(a, b)
function suma_kwad() // zmienne a i b można byłoby przekazać jako parametry
{ // np. function suma_kwad(x, y) {return x*x + y*y;}
return a*a + b*b;
return Math.sqrt(suma_kwad());
Zasięg zmiennych
Pojęcie globalny / lokalny dotyczy skryptu, w którym tworzony obiekt występuje
Zmienne, które zadeklarowano poza funkcją mają zasięg globalny.
Zmienne, które zadeklarowano w funkcjach bez użycia słowa var mają zasięg globalny w skrypcie i w innych funkcjach skryptu.
Aby zmienna globalna zadeklarowana wewnątrz funkcji była dostępna w innym miejscu, funkcja musi być wcześniej wywołana.
Parametry formalne są zmiennymi lokalnymi.
Zmienna zadeklarowana wewnątrz funkcji przy pomocy słowa var ma charakter lokalny i przesłania globalną o tej samej nazwie.
Funkcje o zmiennej liczbie argumentów
Pominięcie oczekiwanych argumentów w wywołaniu funkcji powoduje przypisanie im automatycznie wartości undefined.
Argumen...
PixelowatyPixel