Wprowadzenie do JavaScript
Część 5

Istotną techniką programistyczną jest posługiwanie się tablicami. Większość języków programowania obsługuje je w taki czy inny sposób. Być może dotarłeś już do etapu, na którym tablice pozwoliłyby pójść dalej. Ale jeśli miałeś okazję przejrzeć dokumentację dostarczoną przez Netscape, zauważyłeś zapewne, że niczego nie powiedziano tam o tablicach. Rzecz w tym, że tablice nie istnieją w JavaScript! Ale pokażę Ci oczywiście, o co tu chodzi.
Po pierwsze, czym są tablice? Można powiedzieć, że tablice to wiele połączonych ze sobą zmiennych. Powiedzmy, że chcesz użyć 10 zmiennych. Mógłbyś rozpocząć od zmiennych a, b, c ... Ale to jest naprawdę skomplikowane. Szczególnie wtedy, gdy chcesz użyć 100 lub więcej zmiennych. Jeśli dysponujesz zmienną, która została nazwana 'MyArray' i ma ona 10 elementów, mógłbyś zaadresować poszczególne elementy za pomocą MyArray[1], MyArray[2], MyArray[3]... (wiele języków programowania rozpoczyna od 0, jako pierwszego elementu, ale my zamierzamy zastosować 1 jako pierwszy element, ponieważ jest to sposób, w jaki używamy go dalej w JavaScript). Tak więc, jeśli chcesz użyć liczby 17 w pierwszym elemencie, musisz napisać MyArray[1]=17. Jak widzisz, możesz pracować z tablicami w taki sam sposób, jak ze zwykłymi zmiennymi. Ale pojawiają się pewne dalsze cechy. Jeśli chcesz użyć liczby 17 w każdym elemencie, możesz to zapisać następująco:
for (var i=1;i<11;i++) MyArray[i]=17
Polecenie for mówi komputerowi, jak często będzie używane następne polecenie. Pętla for rozpoczyna się od i=1. Najpierw komputer otrzymuje polecenie MyArray[1]=17. Następnie i jest zwiększane o 1 i następne polecenie brzmi MyArray[2]=17. i jest zwiększane o 1 do momentu osiągnięcia wartości 10. (Wyrażenie i<11 w pętli for musi być prawdziwe (true) - jeśli i równa się 11, wyrażenie nie jest prawdziwe).
A teraz pokażę Ci funkcję, która inicjalizuje tablice. Funkcja została omówiona w JavaScript Mailing list.

    function initArray() {
          this.length = initArray.arguments.length
          for (var i = 0; i < this.length; i++)
          this[i+1] = initArray.arguments[i]
       }

Nie musisz rozumieć tej funkcji. Powinieneś jedynie wiedzieć, jak ją zastosować. Jeśli chcesz utworzyć tablicę z trzema elementami, po prostu napisz: var MyArray= new initArray(17,18,19). 17,18,19 są przypisane do elementów 1,2,3. Mógłbyś także wpisać ciągi do tablicy. Nie musisz się więc zastanawiać, jaki typ został użyty! var heyho= new initArray("This","is","cool"). Mieszanie różnych typów nie stanowi w ogóle problemu: var Mixedup= new initArray(17,"yo",103).

Zainicjuję teraz tablicę 'Mixedup' i pokażę wynik:

A oto treść odpowiedniego skryptu:

    <script language="JavaScript">
    <!-- Hide
      var Mixedup= new initArray(17,"yo",103);
      document.write("Element No. 1: "+Mixedup[1]+"<br>");
      document.write("Element No. 2: "+Mixedup[2]+"<br>");
      document.write("Element No. 3: "+Mixedup[3]+"<br>");
    // -->
    </script>

Napisałem wczoraj małą grę. Natknąłem się przy tym na problem, który także możesz napotkać. Jeśli zamierzasz usunąć okno czy ramkę, przekonasz się w dokumentacji Netscape, że JavaScript zna funkcję 'document.clear()'. Ale jeśli ją zastosujesz, nic się nie dzieje! Funkcja 'document.clear()' wydaje się nie działać na żadnej platformie. Gordon McComb pokazał mi następujący skrypt, który usuwa okno tak, jak sobie tego życzyłem.

         document.close();
         document.open();
         document.write("<P>");

Nie musisz wpisywać document.write("<P>");. Jest to ważne jedynie wtedy, gdy posyłasz coś do tego okna. Działa to także z ramkami.

A teraz przypatrzmy się skryptowi, który pozwala nawigować między różnymi dokumentami. Chodzi tutaj o funkcję back i forward. Jeśli masz na stronie odsyłacz do poprzedniej strony, nie jest on tym samym, co przycisk Back w Netscape Navigatorze. Dla przykładu, użyłem paru wstecznych odsyłaczy, które działają jak normalne odsyłacze, ale zdaję sobie sprawę, że czytelnik mógł dotrzeć do mojej strony z całkiem innego miejsca. Przycisk Back w Netscape Navigatorze przeniesie go wstecz w JEGO historii skoków. To samo możesz także zrobić za pomocą JavaScript. Kliknij w tym miejscu, aby wykonać krok wstecz! Odpowiedni skrypt ma postać:

    <html>
    <body>
    <FORM NAME="buttonbar">
         <INPUT TYPE="button" VALUE="Back" onClick="history.back()">
         <INPUT TYPE="button" VALUE="JS- Home" onClick="location='script.htm'">
         <INPUT TYPE="button" VALUE="Next" onCLick="history.forward()">
    </FORM>
    </body>
    </html>

Możesz także napisać history.go(-1) i history.go(1).

####
Indeks - Część 1 - Część 2 - Część 3 - Część 4 - Część 6 - Część 7

Aktualizacja: 11 maja 96
(c) 1996 by Stefan Koch