JavaScript
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