Introduzione a JavaScript
Parte 5

Un'importante tecnica di programmazione è l'uso di array. La maggior parte dei linguaggi di programmazione li supportano in qualche modo. Probabilmente siete già arrivati al punto in cui sentite la necessità di una struttura come gli array, ma se cercate nella documentazione fornita da Netscape vi renderete conto che non si fa cenno agli array. Il problema è che gli array non esistono in Javascript! Vi mostrerò comunque un modo per colmare questa lacuna!
Ma cosa sono gli array? Potremmo dire che gli array sono un insieme di variabili. Facciamo conto di aver bisogno di 10 variabili. Si potrebbe cominciare con le variabili a, b, c, ... Questa è una soluzione poco pratica, specialmente se si vogliono usare 100 o più variabili. Se abbiamo un array, chiamato 'MyArray', con 10 elementi, possiamo indicare i diversi elementi con MyArray[1], MyArray[2], MyArray[3]... (molti linguaggi di programmazione cominciano con 0 come primo elemento, ma preferiamo considerare 1 come primo elemento perché in questo modo li utilizzeremo in Javascript). Quindi se volete memorizzare il numero 17 nel primo elemento dell'array dovete scrivere MyArray[1]=17. Potete quindi lavorare con gli array come con le normali variabili. Ma vi sono alcune caratteristiche particolari. Se volete memorizzare il numero 17 in ogni elemento dell'array potete farlo nel modo seguente:
for (var i=1;i<11;i++) MyArray[i]=17
Il comando for dice al computer quante volte deve eseguire il comando successivo. Il ciclo del for inizia con i=1 e viene eseguito il comando MyArray[1]= 17; dopo viene incrementata di 1 la variabile i e il comando successivo diventa MyArray[2]= 17 e così via fino a quando la variabile i non ha il valore 10 (l'espressione i<11 nel ciclo del for deve essere vera; quando i ha il valore 11 questa espressione non è più vera).
Ora vi mostrerò una funzione per inizializzare gli array. Su questa funzione si è discusso nella mailing list su Javascript.

function initArray() {

      this.length = initArray.arguments.length

      for (var i = 0; i < this.length; i++)

      this[i+1] = initArray.arguments[i]

   }
Non è necessario comprendere il funzionamento della funzione. Basta sapere come usarla. Se volete creare un array con tre elementi scrivete: var MyArray= new initArray(17,18,19). 17, 18, 19 vengono assegnati agli elementi 1, 2, 3. Potete anche scrivere delle stringhe nei vostri array. Non ha importanza il tipo degli elementi! var heyho= new initArray("Una","cosa","fantastica"). E' possibile anche utilizzare elementi di tipo diverso: var Mixedup= new initArray(17,"Ehi",103).

Ora inizializziamo l'array 'Mixedup' e mostriamone il contenuto:

Questo è lo script per produrre l'output precedente:

<script language="JavaScript">

<!-- 

  var Mixedup= new initArray(17,"Ehi",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>

L'altro giorno nello scrivere un giochino ho avuto un problema che forse sarà capitato anche a voi. Se volete cancellare il contenuto di una finestra o di un frame fate riferimento alla documentazione di Netscape e vi accorgerete che esiste la funzione Javascript 'document.clear()' ma che non fa il suo dovere! Sembra che la funzione document.clear() non funzioni su tutte le piattaforme. Gordon McComb mi ha fornito il seguente script che ripulisce una finestra.

     document.close();

     document.open();

     document.write("<P>");
Non siete obbligati a scrivere document.write("<P>");, l'importante è che inviate qualcosa alla finestra. Questo script funziona anche con i frame.


Ora daremo un'occhiata ad uno script che permette di navigare tra diversi documenti. Sto parlando delle funzioni back() e forward(). Avere un link che porta indietro nella vostra pagina non è la stessa cosa del pulsante Back di Netscape Navigator. Per esempio, se ad una pagina si può arrivare tramite più pagine, il link indietro a quale pagina deve puntare? Il pulsante Back di Netscape Navigator va indietro di un passo nella storia delle pagine visitate. E' possibile fare ciò anche con Javascript. Clicca su questo link per poter tornare indietro! Lo script che ho usato è il seguente:

<html>

<body>

<FORM NAME="buttonbar">

     <INPUT TYPE="button" VALUE="Indietro" onClick="history.back()">

     <INPUT TYPE="button" VALUE="JS- Sommario" onClick="location='script.htm'">

     <INPUT TYPE="button" VALUE="Avanti" onCLick="history.forward()">

</FORM>

</body>

</html>

Potete anche scrivere history.go(-1) e history.go(1).
 
  TORNA INDIETRO