--- title: Operatori Aritmetici slug: conflicting/Web/JavaScript/Reference/Operators tags: - JavaScript - Operatori - Operatori Aritmetici translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Arithmetic_Operators original_slug: Web/JavaScript/Reference/Operators/Operatori_Aritmetici ---
L'operazione di addizione produce la somma di operandi numerici o la concatenzione di stringhe.
Operatore: x + y
// Numero + Numero -> addizione 1 + 2 // 3 // Booleano + Numero -> addizione true + 1 // 2 // Booleano + Booleano -> additione false + false // 0 // Numero + Stringa -> concatenazione 5 + "foo" // "5foo" // Stringa + Booleano -> concatenazione "foo" + false // "foofalse" // Stringa + Stringa -> concatenazione "foo" + "bar" // "foobar"
L'operatore di sottrazione fa la sottrazione dei due operandi e produce la loro differenza.
Operatore: x - y
5 - 3 // 2 3 - 5 // -2 "foo" - 3 // NaN
L'operatore di divisione produce il quoziente dei suoi operandi dove l'operando di sinistra è il dividendo e l'operando di destra è il divisore.
Operatore: x / y
1 / 2 // restituisce 0.5 in JavaScript 1 / 2 // restituisce 0 in Java // (nessuno degli operandi è un numero in virgola mobile esplicito) 1.0 / 2.0 // restituisce 0.5 in both JavaScript and Java 2.0 / 0 // restituisce Infinity in JavaScript 2.0 / 0.0 // restituisce Infinity too 2.0 / -0.0 // restituisce -Infinity in JavaScript
The multiplication operator produces the product of the operands.
Operatore: x * y
2 * 2 // 4 -2 * 2 // -4 Infinity * 0 // NaN Infinity * Infinity // Infinity "foo" * 2 // NaN
L'operatore Resto o Modulo restituisce il “resto“ rimasto quando un operando viene diviso per un secondo operando. Calcola il resto della divisione fra il primo e il secondo operando. Porta sempre il segno del dividendo.
Operatore: var1 % var2
12 % 5 // 2 -1 % 2 // -1 NaN % 2 // NaN 1 % 2 // 1 2 % 3 // 2 -4 % 2 // -0
L'operatore Esponente o esponenziale in JavaScript. Una delle funzionalità di questa versione è l'operatore di esponenziazione. Esponente restituisce il risultato dell'elevamento a potenza dal primo operando al secondo. Cioè var1
var2
, var2.
var1
e var2
sono variabili. L'operatore Esponente ha ragione associativa. a ** b ** c
equivale a a ** (b ** c)
.
Operatore: var1 ** var2
Nella maggior parte dei linguaggi come PHP e Python e altri che usano l'operatore Esponente (**), ha precedenza rispetto agli altri operatori unari come + e -, salvo in alcune eccezioni. Ad esempio, in Bash l'operatore ** ha una minor importanza rispetto agli operatori unari. In JavaScript, è impossibile scrivere un'espressione Esponente ambigua, ovvero non è possibile inserire un operatore unario ( +/-/~/!/delete/void/typeof
) immediatamente prima del numero di base. Il calcolo della potenza può essere espresso più sinteticamente usando la notazione infissa. Simile ad altri linguaggi come Python o F#, **
è usato per indicare l'operatore.
-2 ** 2 // equals 4 in ES2016 or in Bash, equals -4 in other languages.
Accetta base sul lato sinistro ed esponente sul lato destro, rispettivamente.
let value = 5; value **= 2; // value: 25
2 ** 3 // 8 3 ** 2 // 9 3 ** 2.5 // 15.588457268119896 10 ** -1 // 0.1 NaN ** 2 // NaN 2 ** 3 ** 2 // 512 2 ** (3 ** 2) // 512 (2 ** 3) ** 2 // 64 var a = 3; var b = a ** 3; alert("3x3x3 is = " + b); // 27
Per invertire il segno del risultato di un'espressione di Esponente:
-(2 ** 2) // -4
Per forzare la base di un'espressione di Esponente ad essere un numero negativo:
(-2) ** 2 // 4
L'operatore di incremento incrementa (aggiunge uno a) il suo operando e restituisce un valore.
Operatore: x++ or ++x
// Postfix // post posizione var x = 3; y = x++; // y = 3, x = 4 // Prefix // Prefisso var a = 2; b = ++a; // a = 3, b = 3
L'operatore decrementa decrementa (sottrae uno da) il suo operando e restituisce un valore.
Operatore: x-- or --x
// Postfix // post posizione var x = 3; y = x--; // y = 3, x = 2 // Prefix // Prefisso var a = 2; b = --a; // a = 1, b = 1
L'operatore di negazione unario precede il suo operando e lo nega.
Operatore: -x
var x = 3; y = -x; // y = -3, x = 3 //
L'operatore di negazione unario può convertire numeri diversi in un numerovar x = "4"; y = -x; // y = -4
L'operatore unario più precede il suo operando e valuta il suo operando, ma tenta di convertirlo in un numero, se non lo è già. Anche se la negazione unaria (-) può anche convertire non numeri, unario è il modo più veloce e preferito per convertire qualcosa in un numero, perché non esegue altre operazioni sul numero. È in grado di convertire rappresentazioni di stringa di numeri interi e float, oltre ai valori non stringa true
, false
e null
. Sono supportati i numeri interi decimali ed esadecimali ("0x" -prefixed). I numeri negativi sono supportati (sebbene non per hex). Se non può analizzare un valore particolare, valuterà in NaN.
Operatore: +x
+3 // 3
+'3' // 3
+true // 1
+false // 0
+null // 0
+function(val){ return val } // NaN
Specificazioni | Stato | Commento |
---|---|---|
ECMAScript 1st Edition. | Standard | Definizione iniziale. |
{{SpecName('ES5.1', '#sec-11.3')}} | {{Spec2('ES5.1')}} | Definito in diverse sezioni della specifica: Additive operators, Multiplicative operators, Postfix expressions, Unary operators. |
{{SpecName('ES2015', '#sec-postfix-expressions')}} | {{Spec2('ES2015')}} | Definito in diverse sezioni della specifica: Additive operators, Multiplicative operators, Postfix expressions, Unary operators. |
{{SpecName('ES2016', '#sec-postfix-expressions')}} | {{Spec2('ES2016')}} | Aggiunto Exponentiation operator. |
{{Compat("javascript.operators.arithmetic")}}