24 – operatori precedenze e associatività
Operatori
Intanto memorizzo il <br /> in una variabile, così evito di ripeterlo ogni volta
var br = "<br>";
Iniziamo con alcuni operatori aritmetici già visti in precedenza
-
classici
var x = 49.99; x += 5; //x = x+5 x -= 5; //x = x-5; x*=2; // x = x*2; x/=2; // x = x / 2; document.write( x + br);
Il numero restituito in fondo è quello iniziale
x = 4; var y = 3; x += (6 - y) * (x - y); document.write( x + br); //7
Il risultato è 7
-
pre incremento
x = 0; y = ++x; document.write( y + br); //y==1, x==1
pre incremento: prima si incrementa x e poi la si usa
-
post incremento
x = 0; y = x--; document.write( y + br); //y==0, x==-1
post decremento: prima si usa la x e poi la si decrementa.
Gli Operatori di incremento e decremento li abbiamo visti nel ciclo for, ma nessuno ci impedisce di utilizzarli ovunque, anche in altri cicli ove vi sia un beneficio.
Stampare in verticale La stringa Alessandro
var nome="Alessandro", conta=0; while (conta<nome.length) { document.write( nome.charAt(conta) + br); conta++; }
Come già visto il metodo lenght restituisce la lunghezza della stringa. Il metodo charAt restituisce il carattere in quella posizione. Utilizzando il post incremento ottimizzo ancora di più
var nome="Alessandro", conta=0; while (conta<nome.length) { document.write( nome.charAt(conta++) + br); }
-
operatori aritmetici
document.write(2**5 + br + 10**-2 + br + 1.5**3.4 + br); //ancora sperimentale, quindi non fidarsi
anche se ancora sperimentale, questo è l’ elevamento a potenza , il primo è 2 alla quinta , il secondo con esponente negativo è 1 fratto 10 alla seconda, il terzo utilizza l’esponente decimale.
Ora vediamo alcuni metodi della classe Math :
document.write(Math.abs(-56) + br); //56
con abs (absolute), togliamo il segno, restituisce il valore assoluto
document.write(Math.PI + br); //pi greco
PI è il pi greco.
document.write(Math.ceil(12.001) + br); //13 document.write(Math.floor(12.999) + br); //12
arrotondamento , in alto (ceil), in basso (floor)
document.write(Math.round(11.4999) + br); //11 document.write(Math.round(11.5001) + br); //12 document.write(Math.round(11.5) + br); //12
round è l’arrotondamento classico, se è più della metà in eccesso, altrimenti in difetto
document.write(Math.max(23, 34.6, 7) + br); //34.6 document.write(Math.min(23, 34.6, 7) + br); //7 document.write(Math.min("ABACO", "zucca", "ferro") + br); //NaN
max e min restituiscono rispettivamente il valore massimo e minimo. Non funzionano con le stringhe
document.write(Math.pow(2,10) + br); //1024 document.write(Math.sqrt(49) + br); //7 document.write(Math.trunc(2.456) + br); //2
Nell’ordine pow elevamento a potenza, sqrt radice quadrata, trunc tronca il numero togliendo i decimali.
-
operatore virgola
for (var i = 0, j = 9; i <= j; i++, j--) {document.write(i + (j + " ") );} document.write(br);
viene utilizzato per sequenzializzare una serie di istruzioni
Nell’ espressione il ragionamento è: non solo fai partire la i da 0 , ma anche la j da 9 e prima di ripetere ancora il ciclo, se la condizione lo consente, incrementa i e decrementa j