Operadors aritmètics

Resum

Els operadors aritmètics prenen valors numèrics (poden ser tant literals com ser variables) com a operands seus i retornen un valor numèric únic. Els operadors aritmètics estàndards són la suma (+), la resta (-), la multiplicació (*), i la divisió (/).

Suma (+)

L'operador Suma produeix la suma dels operands numèrics o de la concatenació de cadenes.

Sintaxi

Operador: x + y

Exemples

// Nombre + Nombre -> suma
1 + 2 // 3

// Booleà + Nombre -> suma
true + 1 // 2

// Booleà + Booleà -> suma
false + false // 0

// Nombre + String -> concatenació
5 + "foo" // "5foo"

// String + Booleà -> concatenació
"foo" + false // "foofalse"

// String + String -> concatenació
"foo" + "bar" // "foobar"

Resta (-)

L'operador resta produeix la resta de dos operands, produint la seva diferència.

Sintaxi

Operador: x - y

Exemples

5 - 3 // 2
3 - 5 // -2
"foo" - 3 // NaN

Divisió (/)

L'operador divisió produeix el quocient dels seus operands on el operand de l'esquerra és el dividend, i l'operand de la dreta és el divisor.

Sintaxi

Operador: x / y

Exemples

1 / 2      // retorna 0.5 a JavaScript
1 / 2      // retorna 0 in Java 
// (cap dels nombres és explícitament n nombre de coma flotant)

1.0 / 2.0  // retorna 0.5 a JavaScript i Java

2.0 / 0    // retorna Infinity a JavaScript
2.0 / 0.0  // també retorna Infinity
2.0 / -0.0 // retorna -Infinity a JavaScript

Multiplicació (*)

L'operador multiplicació produeix el producte dels operands.

Sintaxi

Operador: x * y

Exemples

2 * 2 // 4
-2 * 2 // -4
Infinity * 0 // NaN
Infinity * Infinity // Infinity
"foo" * 2 // NaN

Mòdul (%)

L'operador mòdul retorna el mòdul del primer operand amb el segon, això és, var1 modulo var2 en la sentència prèvia, on var1 i var2 són variables. La funció mòdul és la resta entera de dividir var1 per var2. Hi ha una proposta per a implementar un operador mòdul real en una futura versió de l'ECMAScript.

Sintaxi

Operador: var1 % var2

Exemples

12 % 5 // 2
-1 % 2 // -1
NaN % 2 // NaN

Increment (++)

L'operador increment incrementa (afegeix un) al seu operand i retorna un valor.

  • Emprat com a sufix, és a dir, amb l'operador després de l'operand (per exemple:  x++), retorna el valor de l'operand abans d'incrementar-lo.
  • Emprat com a prefix, és a dir, amb l'operador precedint l'operand (per exemple: ++x), retorna el valor de l'operand després d'incrementar-lo.

Sintaxi

Operador: x++ or ++x

Exemples

// Sufix 
var x = 3;
y = x++; // y = 3, x = 4

// Prefix
var a = 2;
b = ++a; // a = 3, b = 3

Decrement (--)

L'operador decrement decrementa (resta un) al seu operand i retorna el seu valor.

  • Emprat com a sufix, és a dir, amb l'operador després de l'operand (per exemple:  x--), retorna el valor de l'operand abans de decrementar-lo.
  • Emprat com a prefix, és a dir, amb l'operador precedint l'operand (per exemple: --x), retorna el valor de l'operand després de decrementar-lo.

Sintaxi

Operador: x-- or --x

Exemples

// Sufix 
var x = 3;
y = x--; // y = 3, x = 2

// Prefix
var a = 2;
b = --a; // a = 1, b = 1

Negació unària (-)

L'operador de negació unària precedeix el seu operand i el nega.

Sintaxi

Operator: -x

Exemples

var x = 3;
y = -x; // y = -3, x = 3

Operador unari de conversió a nombre (+)

L'operador unari de conversió a nombre precedeix el seu operand i intenta convertir-lo en un nombre si no ho és ja. Tot i que l'operand de negació unària també pot convertir no-nombres, l'operador de conversió és el mètode més ràpid i recomanat per a convertir quelcom a un nombre ja que no realitza cap altra operació al nombre. Pot convertir cadenes de caràcters representant sencers i nombres en coma flotant, així com els valors true, false i null. Quant a nombres sencers, tant la notació decimal com la hexadecimal (denotada amb el prefixe "0x") estàn suportades. Els nombres negatius també estàn suportats (tot i que no per a hexadecimals). Si no pot interpretar un valor determinat l'operador retornarà NaN.

Sintaxi

Operador: +x

Exemples

+3     // 3
+"3"   // 3
+true  // 1
+false // 0
+null  // 0

Especificacions

Especificació Estat Comentaris
ECMAScript 1st Edition. Standard Initial definition.
ECMAScript 5.1 (ECMA-262)
The definition of 'Additive operators' in that specification.

ECMAScript 5.1 (ECMA-262)
The definition of 'Multiplicative operators' in that specification.

ECMAScript 5.1 (ECMA-262)
The definition of 'Postfix expressions' in that specification.

ECMAScript 5.1 (ECMA-262)
The definition of 'Unary operators' in that specification.
Standard  
ECMAScript 6 (ECMA-262)
The definition of 'Additive operators' in that specification.

ECMAScript 6 (ECMA-262)
The definition of 'Multiplicative operators' in that specification.

ECMAScript 6 (ECMA-262)
The definition of 'Postfix expressions' in that specification.

ECMAScript 6 (ECMA-262)
The definition of 'Unary operators' in that specification.
Release Candidate  

Compatibilitat amb navegadors

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes)
Característica Android Chrome per Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Vegeu també

Document Tags and Contributors

 Contributors to this page: teoli, enTropy, llue
 Last updated by: teoli,