JavaScript - tablice, pętle przykład praktyczny
| DZIAŁANIE: |
Kod:

W <body> należy dopisać :
![]()
Ewentualne Objaśnienia:
Poniższy przykład został zaczerpnięty z książki "JavaScript. Podręcznik
tworzenia interaktywnych stron internetowych. Wydanie II" .
Jak to określa sam autor książki przykład przedstawia pewną paranoje
programistów - czyli sprawdzanie czy czasem coś nie jest nie tak mimo iż jest to
niemalże niemożliwe. Nic nie szkodzi - warto to przeanalizować moim zdaniem.
Tutaj też po raz pierwszy widzicie wykonywanie JS zależnie od czasu (w czasie).
Takich rzeczy nie osiągniecie na przykład przez PHP.
- tworzymy sobie tablicę, która zawiera jakieś tam sobie teksty, porady,
które mają się zmieniać na stronie, wyświetlać
- określamy długość takiej tablicy, no i pierwsza "paranoja" sprawdzamy czy
rzeczywiście tablica ma jakieś elementy oraz czy czasem jej ostatni element nie
jest pusty (porady[ile-1] oznacza element, bo jak mówiłem tablice są numerowane
od 0). Gdyby rzeczywiście ostatni element był pusty, następuje zmniejszenie
zmiennej ile i ponowne sprawdzenie elementu tym razem już przed ostatniego - i
tak w kółko aż znajdziemy element nie pusty (ale tak jak mówiłem jest to pewna
paranoja, sytuacja, która tutaj raczej nigdy nigdy nie wystąpi)
- no i mamy naszą funkcję startScroll() - kolejna rzecz paranormalna hehe
czyli sprawdzenie czy czasem zmienna ile nie jest null (czy czasem nie ma żadnej
wartości przypisanej), jeśli by tak było (niemożliwe raczej to jest) nic w
funkcji się nie wykona. Jeśli ile ma wartość różną od null (czyli ma jakąś
wartość) mamy kolejne sprawdzenie niekoniecznie potrzebne, czyli sprawdzenie czy
nasz formularz (o nazwie formularz) istnieje (czy został wyświetlony w naszym
dokumencie, stronie). Jeżeli tak no to naszemu polu textarea jest przypisywana
porada z tablicy porady o indeksie i, oraz zmienna i jest inkremetnowana. Mamy
tutaj skrócony zapis - zamiast pierw wpisać porady[i] a dopiero potem i++ mamy
to za jednym zamachem.
Zapis taki oznacza pierw wpisanie wartości porady[i] a potem zwiększenie
zmiennej i o 1. Jeśli mielibyśmy tam zapis porady[++i] to pierw i byłoby
zwiększane, a dopiero potem od tego "nowego" i byłaby wpisana wartość do pola
textarea. Zapis taki typu --i lub ++i nazywamy predekrementacją lub
preinkrementacją, a zapisy i-- oraz i++ postdekrementacja oraz
postinkrementacja .
- po wpisaniu wartości do pola textarea, należy sprawdzić czy czasem nie
wpisaliśmy już do niego ostatniego teksty z naszej tablicy - jeśli tak czyli
warunek i>ile-1 jest prawdziwy należy wpisywać znowu porady zaczynając od
pierwszego tekstu (czyli 0 elementu tablicy). Dlatego w takiej sytuacji zmienna
i jest ustawiana na 0
- no i po tym wszystkim mamy instrukcję setTimeout - jej pierwszy argument
oznacza kod jaki ma wykonać, a drugi co jaki okres czasu ma to robić (w
milisekundach).
Zwróć uwagę, że funkcja startScrool w pewnym momencie wywołuje sama siebie -
taka sytuacja nazywa się rekurencją .
Zapis akcji onload w sekcji BODY oznacza, że przy ładowaniu strony ma się
uruchomić również funkcja startScrtoll.