Operatori addizionali ECMAScript

In molti linguaggi di programmazione, l'operatore di somma (cioè il segno più o meno) è generalmente l'operatore matematico più semplice.

In ECMAScript, l'operatore di somma ha un gran numero di comportamenti speciali.

Operatore di somma

L'operatore di somma è rappresentato dal segno più (+):

var iResult = 1 + 2

Come gli operatori moltiplicativi, nell'elaborazione di valori speciali, l'addizione in ECMAScript presenta alcuni comportamenti speciali:

  • Se un numero operandi è NaN, il risultato è NaN.
  • -Infinity più -Infinity, il risultato è -Infinity.
  • Infinity più -Infinity, il risultato è NaN.
  • +0 più +0, il risultato è +0.
  • -0 più +0, il risultato è +0.
  • -0 più -0, il risultato è -0.

Tuttavia, se un numero operandi è una stringa, si adotta il seguente regolamento:

  • Se entrambi i numeri operandi sono stringhe, la seconda stringa viene aggiunta alla prima.
  • Se c'è solo un numero operandi è una stringa, il numero operandi viene convertito in una stringa e il risultato è la connessione di due stringhe.

Ad esempio:

var result = 5 + 5;	//Due numeri
alert(result);		//Output: "10"
var result2 = 5 + "5";	//Un numero e una stringa
alert(result2);		//Output: "55"

Questo codice illustra la differenza tra due modelli dell'operatore di somma. Normalmente, 5+5 è uguale a 10 (valore originale), come nei due primi righe del codice sopra. Tuttavia, se si cambia uno dei numeri operandi in una stringa "5", il risultato sarà "55" (valore originale della stringa), perché l'altro numero operandi sarà anche convertito in una stringa.

Attenzione:Per evitare un errore comune in JavaScript, è necessario controllare attentamente il tipo di dati dei numeri operandi quando si utilizza l'operatore di somma.

Operatore di sottrazione

L'operatore di sottrazione (-) è anche un operatore molto utilizzato:

var iResult = 2 - 1;

Come per l'operatore di somma, l'operatore di sottrazione ha anche comportamenti speciali quando si gestiscono valori speciali:

  • Se un numero operandi è NaN, il risultato è NaN.
  • Infinity meno Infinity, il risultato è NaN.
  • -Infinity meno -Infinity, il risultato è NaN.
  • Infinity meno -Infinity, il risultato è Infinity.
  • -Infinity meno Infinity, il risultato è -Infinity.
  • +0 meno +0, il risultato è +0.
  • -0 meno -0, il risultato è -0.
  • +0 meno -0, il risultato è +0.
  • Se un operatore non è un numero, il risultato è NaN.

Nota:Se i numeri operandi sono tutti numeri, viene eseguita l'operazione di sottrazione regolare e viene restituito il risultato.