In una precedente lezione abbiamo visto come defininire e valorizzare delle variabili in Javascript ed abbiamo visto che queste possono assumere diversi valori corrispondenti a diversi tipi di dato (stringa, numerico, booleano, ecc.). Se è vero che le variabili svolgono un ruolo da primo iano in un qualsiasi programma, è altrettanto vero che lo è altrettanto saper svolgere su di esse determinate operazioni come, ad esempio, operazioni matematiche, confronti, concatenazioni, ecc.
Tutte queste operazioni sono fondamentali all’interno di un programma in quanto è attraverso di esse che il flusso di codice riesce a raggiungere il risultato (l’elaborazione) che il programmatore si è prefissato.
In realtà alcuni operatori li abbiamo già incontrati nella lezione dedicata alle variabili, si tratta dei cosidetti operatori di assegnazione che sono utilizzati, come il nome lascia intendere, appunto per assegnare un valore ad una variabile. In questa lezione vedremo altre "famiglie" di operatori, più precisamente: operatori di concatenazione, operatori matematici, operatori di confronto e operatori logici.
Operatori di concatenazione
Gli operatori di concatenazione agiscono sulle stringhe e servono, come il nome lascia intendere, a concatenare due o più variabili stringa.
Operatore +
Attraverso il simbolo matematico del + è possobile concatenare due variabili stringa. Ad esempio:
var str1 = 'Mr.';
var str2 = 'Webmaster';
document.write(str1 + str2);
stamperà a video "Mr.Webmaster".
Operatore +=
Attraverso l’operatore += viene concatenato il valore della variabile di sinistra all’espressione di destra:
var str1 = 'Mr.';
str1 += 'Webmaster';
document.write(str1);
stamperà a video "Mr.Webmaster".
Operatori matematici
Si tratta dei comuni operatori utilizzati per effettuare operazioni matematiche tra variabili numeriche. Questi sono:
- + Esegue un’addizione
- – Esegue una sottrazione
- * Esegue una moltiplicazione
- / Esegue una divisione
- % (modulo) calcola il resto intero della divisione tra due numeri
Oltre a questi devono essere ricordati gli operatori ++ e — utilizzati, rispettivamente, per incrementare e decrementare di una unità un valore numerico passato per una routine. Ad esempio:
var num = 7;
num++;
documenti.write(num);
stamperà a video: 8
var num = 7;
num--;
documenti.write(num);
stamperà a video: 6
Operatori di confronto
Questi operatori possono agire su diversi tipi di variabili (stringa, numerica, booleana, ecc.) e sono utilizzati per effettuare, appunto, dei confronti. L’esito del confronto genera un valore booleano (TRUE o FALSE).
- == Uguaglianza
- != Diversità
- < Minore
- <= Minore o uguale
- > Maggiore
- >= Maggiore o uguale
Questo tipo di operatori assume un’importanza centrale all’interno delle strutture di controllo (o strutture condizionali) quando, cioè, l’esito del confronto tra due o più variabili diventa determinante al fine del comportamento del programma stesso.
Vediamo qualche esempio di utilizzo degli operatori di confronto:
var a = 10;
var b = 3;
if (a == b) { ... } // il controllo restituisce FALSE
if (a != b) { ... } // il controllo restituisce TRUE
if (a < b) { ... } // il controllo restituisce FALSE
if (a > b) { ... } // il controllo restituisce TRUE
Operatori logici
Un altra serie molto importante di operatori è costituita da quella simbologia che consente di effettuare operazioni logiche di associazione (AND), alternanza (OR) e negazione (NOT). Anche questi operatori sono utilizzati nelle strutture di controllo del flusso di programma.
- && – L’operatore "AND" è utilizzato per creare condizioni complesse composte da una pluralità di sotto-condizioni; affinché la routine si verifichi è necessario che tutte le sotto-condizioni siano vere.
- || – L’operatore "OR" è utilizzato per creare condizioni complesse composte da una pluralità di sotto-condizioni; affinché la routine si verifichi è necessario che almeno una delle sotto-condizioni sia vera.
- ! – L’operatore "NOT" indica una negazione all’interno di una routine. In sostanza si usa per invertire il significato di una condizione.
Vediamo qualche esempio:
var a = 10;
var b = 3;
var c = 9;
var d = 24;
if (a == b && c < d) { ... } // il controllo restituisce FALSE
if (a != b && c < d) { ... } // il controllo restituisce TRUE
if (a > b || c == d) { ... } // il controllo restituisce TRUE
if (!(a > b)) { ... } // il controllo restituisce FALSE