JS 11 Funkcje, Programowanie, instrukcje - teoria


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>');

0x08 graphic
}

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

0x08 graphic

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

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

Argumenty podane nadmiarowo są ignorowane.

Można tworzyć funkcje o zmiennej liczbie argumentów. Korzysta się wtedy z tablicy arguments, tworzonej automatycznie dla każdej funkcji.

function param()

{

return arguments;

}

Wywołanie : document.write(param());

da wydruk : [object Arguments](Mozilla) lub [object Object] (IE8)

Funkcja zdefiniowana następująco

function druk_parame()

{

d = arguments.length; // rozmiar tablicy arguments

for ( i = 0; i < d; i++) // indeksowanie od zera

{

document.write( arguments[ i ] + ' - ' );

}

}

po wywołaniu

druk_parame(1, 5, 10, 'alfa', 'beta');

da wydruk:

1 - 5 - 10 - alfa - beta -

Błąd parametrów może spowodować niewykonanie funkcji !!!

wywołanie

w sekcji BODY

lokowanie

w pliku *.js



Wyszukiwarka

Podobne podstrony:
Cpp 10 Funkcje, Programowanie, instrukcje - teoria
JS 12 Tablice, Programowanie, instrukcje - teoria
JS 06 Funkcje matematyczne, Programowanie, instrukcje - teoria
JS 06 Funkcje matematyczne, Programowanie, instrukcje - teoria
JS 15 Metody w JavaScript, Programowanie, instrukcje - teoria
JS 05 Operatory Logiczne, Programowanie, instrukcje - teoria
JS 09 Instrukcja switch, Programowanie, instrukcje - teoria
JS 03 Zmienne i Typy, Programowanie, instrukcje - teoria
JS 10 Instrukcja for, Programowanie, instrukcje - teoria
JS 07 Sterowanie przebiegiem programu, Programowanie, instrukcje - teoria
JS 13 Interfejs użytkownika, Programowanie, instrukcje - teoria
JS 02 Podstawowe okienka, Programowanie, instrukcje - teoria
JS 01 Umieszczanie skryptu, Programowanie, instrukcje - teoria
JS 04 Operatory Artytmetyczne i Relacji, Programowanie, instrukcje - teoria
JS 08 Instrukcje while i do, Programowanie, instrukcje - teoria
11 Izabela Bludnik Ogólna teoria keynesizm nierównowagi a współczesne programy badawcze 133 143
23 - Funkcje, Programowanie, Klasa III
2009-11-05, pedagogium, wykłady, Teoria edukacji obronnej i bezpieczeństwa publicznego
programowanie liniowe teoria

więcej podobnych podstron