JS 11 Funkcje.doc

(88 KB) Pobierz
INSTRUKCJE WARUNKOWE

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( )

{

  // kod funkcji

}


 

Przykład definicji

 

function uwaga( )

{

document.write(' *********<BR>');

document.write('* UWAGA *<BR>');

document.write(' *********<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.

 

function naz_fun( )

{

  // kod 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);

}

 


Przykładowe wywołania:

 

              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()

{

              function kostka()

              {

                return  Math.floor(Math.random()*6+1);

              } 

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  zmiennej liczbie argumentów

 

Pominięcie oczekiwanych argumentów w wywołaniu funkcji powoduje przypisanie im automatycznie wartości undefined.

Argumen...

Zgłoś jeśli naruszono regulamin