dal 2015 - visita n. 654
Variabili ed Operatori
Variabili ed Operatori

 

Variabili

Una variabile è un contenitore che memorizza delle informazioni per una successiva elaborazione. I dati immessi costituiscono il valore della variabile e possono essere sia numeri sia caratteri alfanumerici. Il valore di una variabile può essere modificato durante l'esecuzione dello script. Le variabili devono avere un nome univoco che li identifica. In JavaScript, come in C, i nomi delle variabili sono sensibili alle maiuscole, ciò significa che le variabili Prova e PROVA sono diverse. Il primo carattere di una variabile JavaScript deve essere non numerico oppure un trattino basso (underscore) '_'. In JavaScript ci possono essere molte variabili, ma tutte rientrano in un ristretto numero di categorie. La lista seguente fornisce un quadro riassuntivo della situazione, utile quando si è agli inizi della programmazione.

Tipo Descrizione Esempio

Numeric

Qualsiasi valore numerico

x = 60;     y = 4.195;
String Caratteri alfanumerici inclusi tra apici a = "Evviva le vacanze !";     b = '44 gatti in fila x 6';
Boolean True o False if (x == y) document.write("le variabili sono uguali")
else document.write("le variabili sono diverse");
Undefined In attesa di assegnazione var x;
if (x==undefined) ...
L'istruzione if restituisce il valore true.
Null Nessun valore, niente x = null;
Function Qualsiasi valore restituito da una funzione function somma (x,y) {
  return x+y; }
document.write(somma(10,30));
Visualizza 40, la somma di 10+30.
Object Qualsiasi valore associato ad un oggetto var a = new Date();
var ore = a.getHours();
Si estrae la variabile "Hours" dall'oggetto "Data".

NOTA: è molto importante comprendere la differenza tra undefined e null, nel primo caso la variabile (di un tipo a sè stante) viene dichiarata senza l'assegnazione di un valore, mentre nel secondo caso il suo valore viene assegnato volutamente ad un oggetto privo di contenuto.

Per dichiarare una variabile basta assegnargli un nome e indicarne il valore, completando la dichiarazione con un carattere punto e virgola:

 var indirizzo = "Via del mare";
 var civico = 50;
 var cap = 40100;

Negli esempi precedenti l'indicazione var può essere omessa; ed occorre inoltre tenere presente che se si vuole mantenere ordinato il listato conviene dichiarare le variabili all'inizio del blocco di codice. Ma è importante anche sapere distingure tra variabili globali e variabili locali in quanto questo può tornare utile in alcuni passaggi di una programmazione orientata agli oggetti:

Da ciò si ricava la regoletta che le variabili dichiarate all'interno di parentesi graffe possono essere utilizzate solo in quel blocco perchè sono variabili locali.
Le variabili locali hanno una vita brevissima ed esistono finché opera la funzione, alla chiusura della parentesi graffa vengono distrutte liberando memoria, mentre le variabili globali sono dei contenitori che durano per tutta la durata della pagina e servono a veicolare dei valori tra le funzioni e tra gli script. Sembrerebbe, a questo punto, che le variabili globali siano più comode, invece l'utilizzo delle variabili locali favorisce la modularità della programmazione rendendo uno script indipendente e richiamabile anche in altre pagine HTML, soprattutto se salvato in un file esterno con estensione js.



Operatori aritmetici

Come già detto le variabili memorizzano dei dati che poi dovranno essere trattati. Questo trattamento può essere fatto o per mezzo di operatori aritmetici o tramite controllori di flusso. La tabella seguente fornisce un quadro degli operatori aritmetici.

Operatore Descrizione Esempio Test

+

Somma il valore di due variabili

x=9; y=3; z=x+y;    // z vale 12, la somma di x e y.
Prova
- Sottrae il valore di due variabili x=9; y=3; z=x-y;    // z vale 6, la differenza tra x e y. Prova
* Moltiplica il valore di due variabili x=9; y=3; z=x*y;    // z vale 27, il prodotto di x e y. Prova
/ Divide il valore di due variabili x=9; y=3; z=x/y;    // z vale 3, il rapporto tra x e y. Prova
% Restituisce il resto intero della divisione tra gli interi x e y x=9; y=3; z=x%y;    // z vale 0, il resto intero di x/y.
x=9; y=4; z=x%y;    // z vale 1, il resto intero di x/y.
x=9; y=15; z=x%y;    // z vale 9, il resto intero di x/y.
Prova
++ Incrementa di 1 la variabile x=9; y=++x;    // y vale 10, x+1. Prova
-- Decrementa di 1 la variabile x=5; y=--x;    // y vale 8, x-1. Prova


Gli operatori appena visti possono essere usati direttamente anche nel momento dell'assegnazione del valore ad una variabile. Ecco alcuni esempi.

Assegnazione Descrizione Esempio
x = y Rende x eguale alla y x=9; y=3; x=y;    // dopo le operazioni, x varrà 3.
x += y Equivale a:   x = x+y x=9; y=3; x+=y;    // dopo le operazioni, x varrà 12.
x -= y Equivale a:   x = x-y x=9; y=3; x-=y;    // dopo le operazioni, x varrà 6.
x *= y Equivale a:   x = x*y x=9; y=3; x*=y;    // dopo le operazioni, x varrà 27.
x /= y Equivale a:   x = x/y x=9; y=3; x/=y;    // dopo le operazioni, x varrà 3.
x %= y Pone in x il resto intero di:   x/y x=9; y=3; x%=y;    // dopo le operazioni, x varrà 0.


Operatori di comparazione

Gli operatori di comparazione sono molto importanti nella programmazione, in particolare durante le fasi di confronto e decisione. La tabella seguente serve ad avere un quadro riassuntivo della situazione.

Operatore Descrizione Esempio
== operatore di eguaglianza tra i due termini if (x == y) ...    // se x e y sono uguali restituisce vero altrimenti falso.
!= operatore di diseguaglianza tra i due termini if (x != y) ...    // se x e y sono diseguali restituisce vero altrimenti falso.
> il primo termine è maggiore del secondo if (x > y) ...    // se x è maggiore di y restituisce vero altrimenti falso.
>= il primo termine è maggiore o uguale al secondo if (x >= y) ...    // se x è maggiore o uguale di y restituisce vero altrimenti falso.
< il primo termine è minore del secondo if (x < y) ...    // se x è minore di y restituisce vero altrimenti falso.
<= il primo termine è minore o uguale al secondo if (x <= y) ...    // se x è minore o uguale di y restituisce vero altrimenti falso.


Operatori logici

Anche gli operatori logici sono utilizzati generalmente nel controllo di flusso e spesso in combinazione con gli operatori di comparazione. Derivano dall'algebra booleana ed hanno lo stesso significato utilizzato nei circuiti elettronici logici.

Operatore Descrizione Esempio
&& AND logico x=9; y=3; if ((x==9) && (y==4)) ...    // restituisce la condizione falso.
Restituirebbe la condizione vero solo se tutti i valori controllati fossero veri.
|| OR logico x=9; y=3; if ((x==9) || (y==4)) ...    // restituisce la condizione vero.
Restituirebbe la condizione falso solo se nessuno dei valori controllati fosse vero.
! NOT logico x=9; y=3; if !(x==y) ...    // restituisce la condizione vero.
Inverte sempre il risultato di una condizione posta.

La tabella di verità seguente riporta sinteticamente il risultato logico delle tre operazioni compiute sulle variabili x ed y.

xyx && yx || y! x
falsofalsofalsofalsovero
falsoverofalsoverovero
verofalsofalsoverofalso
veroveroveroverofalso


Operatori sui bit

L'attività prevalente di JavaScript si svolge trattando byte o caratteri, raramente è necessario lavorare sui loro singoli bit; in questi casi tornano utili gli operatori sui bit. Alcuni esempi di queste situazioni, molto specifiche, possono essere:

Operatore Descrizione Esempio Commento
& AND binario x=9; y=3; r=x&y; r vale 1
| OR binario x=9; y=3; r=x|y; r vale 11
~ NOT binario x=9; r=~x; r vale -10
^ XOR binario x=9; y=3; r=x^y; r vale 10
<< Shift a sinistra x=9; r=x<<1; r vale 18 (si noti a destra il valore di scorrimento pari a 1 bit)
>> Shift a destra x=9; r=x>>1; r vale 4 (si noti a destra il valore di scorrimento pari a 1 bit)
>>> Shift a destra con zeri x=9; r=x>>>1; r vale 4 (si noti a destra il valore di scorrimento pari a 1 bit)
Nota: per interpretare i risultati si trasformino i byte degli operandi in valori binari (x=00001001, y=00000011) e si eseguano le operazioni bit a bit.

L'operatore << sposta tutti i bit del suo primo operando verso sinistra di un numero di posizioni pari a quanto specificato nel suo secondo operando che deve essere un intero compreso tra 0 e 31. Nelle operazioni di scorrimento i bit all'estrema sinistra vengono persi, mentre da destra vengono iniettati degli zeri. Scorrere un valore a sinistra di un bit significa moltiplicare il valore per 2, scorrere di due posizioni moltiplica per quattro e così via.

L'operatore >> sposta tutti i bit del suo primo operando verso destra di un numero di posizioni pari a quanto specificato nel suo secondo operando che deve essere un intero compreso tra 0 e 31. Nelle operazioni di scorrimento i bit all'estrema destra vengono persi, mentre da sinistra vengono iniettati degli zeri, se il numero è positivo, altrimenti degli uni; questo per preservare il bit più significativo che rappresenta il segno meno. Scorrere un valore a destra di un bit significa dividere il valore per 2, scorrere di due posizioni divide per quattro e così via.

L'operatore >>> differisce dall'operatore >> soltanto per il fatto che i bit iniettati da sinistra sono sempre zeri. In pratica esso rappresenta il duale dell'operatore <<.


















Introduzione
Variabili ed Operatori
Parole riservate
Codici Carattere
HTML e JavaScript
Funzioni
Strutture di controllo
Eventi
Oggetti
Oggetti predefiniti
Espressioni Regolari



La diligenza e' un grandissimo aiuto anche in chi possiede un mediocre ingegno.
Seneca

Valid CSS!
pagina generata in 0.002 secondi