Operadores aritméticos tem valores numéricos (literais ou variáveis) como seus operadores e retornam um valor numérico único. Os operadores aritméticos padrões são adição (+), subtração (-), multiplicação (*), e divisão (/).
Adição (+)
O operador de adição produz a soma dos operadores numéricos ou a concatenação de strings.
Sintaxe
Operador: x + y
Exemplos
// Número + Número -> adição 1 + 2 // 3 // Booleano + Número -> adição true + 1 // 2 // Booleano + Booleano -> adição false + false // 0 // Número + String -> concatenação 5 + "foo" // "5foo" // String + Booleano -> concatenação "foo" + false // "foofalse" // String + String -> concatenação "foo" + "bar" // "foobar"
Subtração (-)
O operador de subtração subtrai os dois operandos, produzindo sua diferença.
Sintaxe
Operador: x - y
Exemplos
5 - 3 // 2 3 - 5 // -2 "foo" - 3 // NaN
Divisão (/)
O operador de divisão produz o quociente de seus operandos onde o operando da esquerda é o dividendo e o da direita é o divisor.
Sintaxe
Operador: x / y
Exemplos
1 / 2 // retorna 0.5 em JavaScript 1 / 2 // retorna 0 em Java // (nenhum dos números é explicitamente um número de ponto flutuante) 1.0 / 2.0 // retorna 0.5 em JavaScript e Java 2.0 / 0 // retorna Infinity em JavaScript 2.0 / 0.0 // retorna Infinity também 2.0 / -0.0 // retorna -Infinity em JavaScript
Multiplicação (*)
O operador de multiplicação produz o produto dos operandos.
Sintaxe
Operador: x * y
Exemplos
2 * 2 // 4 -2 * 2 // -4 Infinity * 0 // NaN Infinity * Infinity // Infinity "foo" * 2 // NaN
Módulo (%)
O operador de módulo retorna o primeiro operando módulo o segundo, isto é, var1 módulo var2, na sentença anterior, onde var1 e var 2 são variáveis. A função módulo é o resto inteiro da divisão de var1 por var2. Existe uma proposta de ter um operador real de módulo em uma versão futura do ECMAScript.
Sintaxe
Operador: var1 % var2
Examples
12 % 5 // 2 -1 % 2 // -1 NaN % 2 // NaN
Incremento (++)
O operador de incremento incrementa (adiciona um a) seu operando e retorna um valor;
- Se usado na forma posfixa, com o operador depois do operando (por exemplo, x++), então ele retorna o valor antes de incrementá-lo.
- Se usado na forma prefixa, com o operador antes do operando (por exemplo, ++x), então ele retorna o valor depois de incrementá-lo.
Sintaxe
Operador: x++ or ++x
Exemplos
// Posfixo var x = 3; y = x++; // y = 3, x = 4 // Prefixo var a = 2; b = ++a; // a = 3, b = 3
Decremento (--)
O operador de decremento decrementa (subtrai um de) seu operando e retorna um valor.
- Se usado na forma posfixa (por exemplo, x--), então ele retorna o valor antes de decrementá-lo.
- Se usado na forma prefixa (por exemplo, --x), então ele retorna o valor depois de decrementá-lo.
Sintaxe
Operador: x-- or --x
Exemplos
// Posfixo var x = 3; y = x--; // y = 3, x = 2 // Prefixo var a = 2; b = --a; // a = 1, b = 1
Negação Unária (-)
O operador de negação unária precede seu operando e o nega.
Sintaxe
Operador: -x
Exemplos
var x = 3; y = -x; // y = -3, x = 3
Soma Unária (+)
O operador de soma unária precede seu operando e calcula para seu operando mas tenta convertê-lo para um número, caso ainda não o seja. Apesar da negação unária (-) também poder converter não-números, a soma unária é a forma mais rápida e a forma preferida de converter alguma coisa em um número, porque ele não realiza nenhuma outra operação no número. Ele pode converter strings que representam inteiros e ponto flutuante, bem como os valores de não-string true
, false
, e null
. Inteiros em formato decimal e hexadecimal ("0x"-prefixado) são suportados. Números negativos são suportados (não os hexadecimais). Caso não possa analisar um determinado valor, o operador retornará NaN.
Sintaxe
Operador: +x
Exemplos
+3 // 3 +"3" // 3 +true // 1 +false // 0 +null // 0
Especificações
Especificação | Status | Comentário |
---|---|---|
ECMAScript 1ª Edição. | Padrão | Definição inicial. |
ECMAScript 5.1 (ECMA-262) | Standard | Definido em várias seções da especificação: Operadores aditivos, Operadores Multiplicativos, Expressões Posfixas, Operadores Unários. |
ECMAScript 2015 (6th Edition, ECMA-262) | Standard | Definido em várias seções da especificação: Operadores aditivos, Operadores Multiplicativos, Expressões Posfixas, Operadores Unários. |
Compatibilidade com Navegadores
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |