Categorie
Javascript Programmazione

{JS} Gli operatori

In informatica e programmazione, un operatore è un simbolo che specifica quale legge applicare a uno o più operandi, per generare un risultato.
JavaScript prevede operatori unaribinari e ternari a seconda che possano combinare rispettivamente uno, due o tre valori

Operatori unari

Un operatore unario lavora su un operando.

Gli operatori aritmetici unari

OperatoreNome
+nconverte un valore negativo in positivo
-nconverte un valore positivo in negativo
++nincrementa di un unità il valore della variabile
–ndiminusce di un unità il valore di una variabile
n++incrementa di un unita il valore di una variabile dopo la valutazione dell’espressione/prima esegue il calcolo e poi aumenta il valore della variabile
n–diminuisce di un unita il valore di una variabile dopo la valutazione dell’espressione/prima esegue il calcolo e poi diminuisce il valore della variabile

La negazione consente di ottenere un valore negativo di un numero.

let x = 5;
let y = -x;

/* la variabile y sarà uguale a -5 */

Gli operatori di incremento e decremento sono applicabili soltanto a variabili e consentono di ottenere un valore rispettivamente aumentato o diminuito di uno.
È importante la posizione dell’operatore. Infatti, se l’operatore si trova a sinistra dell’operando, l’operazione di incremento o decremento viene eseguita prima della valutazione dell’espressione, mentre se si trova a destra l’operazione viene eseguita dopo.

let x = 3;
let y = ++x;

/* La variabile x verrà prima incrementata di uno ed il risultato verrà assegnato alla variabile y; entrambe avranno valore 4. */

let x = 3;
let y = x++;

/* il valore della variabile x verrà assegnato alla variabile y e soltanto successivamente x verrà incrementata di uno; x sarà uguale a 3 mentre y a 4. */

Operatori binari

Un operatore binario lavora su due operandi.

Operatori aritmetici

OperatoreNome
+addizione
-sottrazione
/divisione
*moltiplicazione
%modulo o resto

Le espressioni

Gli operatori aritmetici seguono le regole di precedenza matematiche e, come in matematica, possiamo utilizzare le parentesi (ma soltanto quelle tonde) per modificare il loro ordine di valutazione

<script>
let primaVarialbile = 4 + 5 * 6 + 7;
let secondaVariabile = (4 + 5) * (6 + 7);
/* Il valore della prima espressione è 41 mentre la seconda espressione vale 117 */
</script>
Note: regole di precedenza matematiche il cui ordine impone
 prima moltiplicazione e divisioni ed a seguire somma e sottrazione

Operatori relazionali

Gli operatori relazionali sono quegli operatori utilizzati per il confronto tra valori. Le espressioni che utilizzano gli operatori relazionali restituiscono un valore booleano (vero/falso) in base all’esito del confronto.

OperatoreNome
<minore
<=minore o uguale
>maggiore
>=maggiore o uguale
==uguale
!=diverso
===strettamente uguale
!==strettamente diverso
x = 5;
y = 10;
x > y // falso
x < y // vero

Operatori di uguaglianza e disuguaglianza stretta (=== e !==). Questi operatori confrontano gli operandi senza effettuare alcuna conversione. Quindi due espressioni vengono considerate uguali soltanto se sono dello stesso tipo ed rappresentano effettivamente lo stesso valore.

x = 5;     // valore della variabile di tipo stringa (testo) 
y = "5";   // valore della variabile di tipo numerico (numero)

x === y    // falso sono due valore visivamente uguali ma di tipo diverso
x !== y    // vero sono effettivamente due variabili di natura diversa

Operatori Logici

Gli operatori logici consentono la combinazione di espressioni booleane. JavaScript prevede due operatori binari e un operatore unario.

OperatoreNome
&&and
||or
!not
5 > 2 && 3 != 4  // il risultato sarà vero
5 > 2 || 4 >= 6  // il risultato sarà vero
!5==5            // inverte il risultato quindi sarà falso

Questi tipi di operatori risulteranno molto utili nel momento in cui analizzeremo i cicli.
In buon sostanza confrontano due condizioni: AND (questo e quello) OR (questo o questo) NOT (inverti)

Operatori bitwise (“bit a bit”)

Gli operatori sui bit o operatori bitwise trattano i valori numerici come sequenze di bit applicandovi le relative operazioni.
Il loro uso è molto specialistico.

OperatoreNomeDescrizione
&and bitwiseconfronta a coppie i bit degli operandi e restituisce 1 se entrambi i bit sono 1, 0 altrimenti
|or bitwiseconfronta a coppie i bit degli operandi e restituisce 1 se almento uno dei bit è 1, 0 altrimenti
^xorconfronta a coppie i bit degli operandi e restituisce 1 se uno dei bit, ma non entrambi, è 1, 0 altrimenti
~notinverte il valore di ciascun bit
<<left shiftsposta di n posizioni verso sinistra la rappresentazione binaria di un numero
>>right shiftsposta di n posizioni verso destra la rappresentazione binaria di un numero
~notinverte il valore di ciascun bit

Operatore di assegnamento

In realtà abbiamo già visto l’operatore di assegnamento, ma è doveroso specificare come è possibile esprimere il valore assegnato ad una variabile:

var x = 1;
var y = 2;
var a = 1 + 5;
var b = (1+5)*(1+6);
var c = 1 + x + y;
var d = (x = 3 + 5);

Dagli esempi mostrati possiamo quindi affermare che il valore di una variabile può contenere:


1. un semplice valore
2. una semplice operazione
3. operazioni più complesse
4. operazioni con altre variabili

Operatori di assegnamento composto

Gli operatori di assegnamento composto rappresentano una abbreviazione di espressioni di assegnamento:

Forma compattaScrittura equivalente
x += yx = x + y
x -= yx = x - y
x *= yx = x * y
x /= yx = x / y
x %= yx = x % y
x += 3;
x = x +3;

Le due espressioni dell’esempio qui sopra sono identiche; preponendo il simbolo dell’operazione “+” all’operatore di assegnamento “=”, il valore della variabile sarà uguale a se stessa (nel caso specifico dell’esempio) + tutto quello che c’è dopo il simbolo “=”

Operatori ternari

Un operatore ternari lavora su tre operandi.

Operatore di assegnamento condizionale

L’unico operatore ternario presente in JavaScript è l’operatore condizionale. Esso restituisce un valore boleano (vero/falso):

var z;
z == 0 ? "pari" : "dispari";

CODIZIONE ? SE VERO : SE FALSO;

Nell’ esempio precedente abbiamo dichiarato una variabile “z” successivamente abbiamo inserito una condizione “z==0”, l’operatore di assegnamento condizionale “?”, se la condizione risulterà vera z assumerà valore stringa “pari” : altrimenti se falsa assumerà valore stringa “dispari”

Operatori polimorfi

Operatori che prevedono operandi di tipo diverso.
Esempi di operatori polimorfi sono la somma e la concatenazione di stringhe, dato che utilizzano lo stesso simbolo +, oppure gli operatori relazionali.

  1. Operatori di assegnamento
  2. Operatori di relazione/confronto
  3. Operatori aritmetici

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *