Javascript

Regole generali

Javascript è un linguaggio embedded, cioè incorporato in una pagina HTML. Non esistono programmi javascript a sè stanti, un programma javascript deve sempre essere scritto dentro una pagina HTML e può essere eseguito solo da un browser.
Per questo motivo il linguaggio è particolarmente adatto ad interagire con gli oggetti della pagina. Il meccanismo di funzionamento è simile a quello delle macro in Word o Excel.

Dove scrivere le istruzioni

Per includere delle istruzioni javascript in una pagina HTML bisogna racchiuderle fra i tag:
<script language="JavaScript"> ... <\script>

I programmi javascript possono essere scritti in qualunque punto della pagina, e vengono eseguiti nel punto stesso quando la pagina viene caricata. Quindi se emettono un output, tipo document.write( ... ) , questo viene visualizzato nel punto della pagina in cui si trova il programma.
Se una istruzione javascript usa un oggetto della pagina (per esempio, per modificarne le proprietà) chiaramente deve essere richiamata dopo che l'oggetto è stato creato, quindi in una riga successiva della pagina HTML.

I sottoprogrammi (function) invece vengono eseguiti solo quando richiamati, quindi in genere vengono posti nell'intestazione della pagina, e richiamati da un evento legato ad un oggetto (p.es: onClick).
Naturalmente un sottoprogramma deve essere scritto prima di essere richiamato, ed è per questo che in genere si mettono tutti nell'intestazione, invece di spargerli qua e là in disordine fra le righe del testo.

Regole di sintassi

Mentre i tag HTML possono essere scritti indifferentemente in maiuscolo o in minuscolo, Javascript è un linguaggio case sensitive, cioè fa differenza tra maiuscole e minuscole.
Le istruzioni vanno scritte in minuscolo, i nomi degli oggetti e delle variabili devono essere scritti sempre nello stesso modo, facendo riferimento alla prima volta che sono stati utilizzati.

Ogni istruzione javascript finisce col ; (punto e virgola). Andare a capo o meno non è significativo in una pagina HTML, quindi non è consigliabile usare il simbolo di a capo per delimitare le istruzioni.

Un blocco di istruzioni viene racchiuso tra le parentesi graffe:
{ ... }
come nel linguaggio C. Le parentesi graffe hanno la stessa funzione del begin ... end nel Pascal, cioè racchiudono istruzioni che devono essere eseguite insieme.

Le righe di commento vengono individuate dalla doppia barra:
// questo è un commento di una riga
I commenti lunghi possono essere inclusi nel tag di commento HTML ,
<!--    ...    -->
oppure contrassegnati da:
/*   ...   */
come in C.
Le righe di commento sono molto importanti, vi aiutano a ritrovare velocemente le istruzioni da correggere o modificare all'interno di una pagina.

Linguaggio

Variabili

Javascript è un linguaggio a tipizzazione debole, il che significa che le variabili assumono lo stesso tipo del dato che contengono. Questo non è sempre un bene perchè a volte può dare risultati imprevisti.

Tipi di dati

I tipi di dati in javascript sono:

integer numeri interi
floating numeri con la virgola
booleanvero o falso
stringalfanumerici

N.B.: non esiste il tipo data in javascript, perchè le date sono oggetti.

Funzioni di conversione

Per essere sicuri che una variabile contenga il tipo di dato desiderato, si può ricorrere alle funzioni di conversione:

parseInt(alfanumerico)
converte una stringa (quella tra parentesi, che può essere una variabile o una costante) in un numero intero.
Naturalmente, per avere un risultato ragionevole, la stringa deve avere un significato numerico, cioè contenere effettivamente un numero.
Questa funzione può essere usata anche con numeri binari, specificando la base due:
Es: var = parseInt('101101',2)
parseFloat(alfanumerico)
analoga alla precedente, ma converte in numeri floating point, cioè con la virgola
String(oggetto)
converte un oggetto (in genere una data) in una stringa, cioè la data in formato esteso.
Number(oggetto)
converte un oggetto (in genere una data) in un numero, tipo data Unix
escape('carattere')
converte il carattere specificato tra parentesi (può essere una variabile o una costante) nel corrispondente codice ASCII espresso in esadecimale
unescape('%xx')
converte il codice esadecimale fornito dopo il % in un carattere ASCII

Operatori

Operatori numerici

+addizione tra due numeri
-sottrazione tra due numeri
*moltiplicazione tra due numeri
/divisione tra due numeri
%modulo (resto della divisione)
++incremento di 1 di un contatore
--decremento di 1

Operatori di confronto

==uguale
!=diverso
<minore
> maggiore
<=minore o uguale
>=maggiore o uguale

Operatori logici

Gli operatori logici hanno la stessa sintassi che in C, cioè

! not
&& AND
|| OR

Operatori stringa

La stringhe possono essere concatenate con l'operatore +.
Javascript non ha particolari funzioni di gestione delle stringhe, come quelle del linguaggio Basic, o Perl o PHP.

Assegnazioni

Le assegnazioni si fanno con il simbolo = (uguale), come in Basic o in C.

Strutture di controllo

Alternativa

La struttura alternativa (o scelta o selezione) ha la seguente sintassi:
if (condizione) { blocco di istruzioni } else { blocco di istruzioni }
dove la condizione può fare uso degli operatori logici o di confronto visti in precedenza, e va sempre tra parentesi tonde.
La parte relativa all' else, naturalmente, è, facoltativa.

Iterazione

La ripetizione ha la seguente sintassi:
while (condizione) { blocco di istruzioni }
do{ blocco di istruzioni} while (condizione)
la condizione è di tipo while, cioè quando è vera indica la continuazione del ciclo, che si interrompe invece quando è falsa.

Iterazione enumerativa

La ripetizione con contatore ha la seguente sintassi:
for (contatore = inizio; condizione; contatore++) { blocco di istruzioni}
in realtà l'istruzione ha un formato più generale, simile a quello del linguaggio Cobol, per cui è possibile che l'istruzione di inizializzazione del contatore assuma un' altra forma (può essere una qualunque epressione di assegnazione) e anche l'incremento potrebbe essere anche, ad esempio, una moltiplicazione.
Il ciclo termina quando la condizione indicata diventa falsa, e non viene neanche iniziato se non lo è.

Avanti