Resumo : neste tutorial, você aprenderá como usar operadores unários JavaScript que pegam um único operando e executam uma operação.
Introdução aos operadores unários JavaScript
Os operadores unários trabalham com um valor. A tabela a seguir mostra os operadores unários e seus significados:
Operadores Unários | Nome | Significado |
---|---|---|
+x | Unário Plus | Converter um valor em um número |
-x | Unário Menos | Converta um valor em um número e negue-o |
++x | Operador de incremento (prefixo) | Adicione um ao valor |
–x | Operador de decremento (prefixo) | Subtraia um do valor |
x++ | Operador de incremento (Postfix) | Adicione um ao valor |
x– | Operador de decremento (Postfix) | Subtraia um do valor |
Mais unário (+)
O operador unário de mais é um sinal de mais simples ( +
). Se você colocar o sinal de mais unário antes de um valor numérico, isso não fará nada. Por exemplo
let x = 10;
let y = +x;
console.log(y); // 10
Linguagem de código: JavaScript ( javascript )
Quando você aplica o operador unário mais a um valor não numérico, ele executa uma conversão numérica usando a Number()
função com as regras da tabela a seguir:
Valor | Resultado |
---|---|
boleano | false para 0 , true para1 |
corda | Converta o valor da string com base em um conjunto de regras específicas |
objeto | Chame o método valueOf() e/ou toString() para obter o valor a ser convertido em um número |
Por exemplo, o seguinte usa o operador unário mais para converter a string '10'
em número 10
:
let s = '10';
console.log(+s); // 10
Linguagem de código: JavaScript ( javascript )
O exemplo a seguir usa o operador unário mais ( +
) para converter um valor booleano em um número, false
to 0
e true
to 1
.
let f = false,
t = true;
console.log(+f); // 0
console.log(+t); // 1
Linguagem de código: JavaScript ( javascript )
Saída:
0
1
Suponha que você tenha um product
objeto com o toString()
método seguinte:
let person = {
name: 'John',
toString: function () {
return '25';
},
};
console.log(+person);
Linguagem de código: JavaScript ( javascript )
Saída:
25
Neste exemplo, aplicamos o operador unário mais ( +
) no person
objeto que possui o toString()
método, o mecanismo JavaScript chama toString()
o método para obter o valor ( '25'
) e convertê-lo em um número. O seguinte adiciona o valueOf()
método ao person
objeto:
let person = {
name: 'John',
toString: function () {
return '25';
},
valueOf: function () {
return '30';
},
};
console.log(+person);
Linguagem de código: JavaScript ( javascript )
Saída:
30
Neste exemplo, o person
objeto possui o valueOf()
método, o mecanismo JavaScript o chama em vez do toString()
método para obter o valor a ser convertido.
Unário menos (-)
O operador unário de menos é um único sinal de menos ( -
). Se você aplicar o operador unário menos a um número, ele negará o número. Por exemplo:
let x = 10;
let y = -x;
console.log(y); // -10
Linguagem de código: JavaScript ( javascript )
Se você aplicar o operador unário menos a um valor não numérico, ele converterá o valor em um número usando as mesmas regras do operador unário mais e, em seguida, negará o valor.
Operadores de incremento/decremento
O operador de incremento possui dois sinais de mais ( ++
) enquanto o operador de decremento possui dois sinais de menos ( --
).
Os operadores de incremento e decremento têm duas versões: prefixo e postfix. E você coloca as versões prefixadas e pós-fixadas dos operadores de incremento ou decremento antes e depois da variável à qual eles se aplicam.
O exemplo a seguir usa o operador de incremento de prefixo para adicionar um a uma variável:
let age = 25;
++age;
console.log(age); // 26
Linguagem de código: JavaScript ( javascript )
É equivalente ao seguinte:
let age = 25;
age = age + 1;
console.log(age); // 26
Linguagem de código: JavaScript ( javascript )
O exemplo a seguir usa o operador de decremento de prefixo para subtrair um de uma variável:
let weight = 90;
--weight;
console.log(weight); // 89
Linguagem de código: JavaScript ( javascript )
É equivalente ao seguinte:
let weight = 90;
weight = weight - 1;
console.log(weight); // 89
Linguagem de código: JavaScript ( javascript )
Quando você aplica o incremento ou decremento do prefixo, o JavaScript altera a variável antes de avaliar a instrução. Por exemplo:
let weight = 90;
weight = ++weight + 5;
console.log(weight); // 96
Linguagem de código: JavaScript ( javascript )
Neste exemplo:
- Primeiro, aumente o peso no lado direito para que o peso ++ seja 91
- Segundo, adicione cinco ao peso ++ que retorna 96
- Terceiro, atribua o resultado ao peso do lado esquerdo.
Da mesma forma, o exemplo a seguir usa um operador de decremento de prefixo:
let weight = 90;
weight = --weight + 5;
console.log(weight); // 94
Linguagem de código: JavaScript ( javascript )
Neste exemplo:
- Primeiro, subtraia um do peso, –weight retorna 89
- Segundo, adicione cinco ao –weight que retorna 94
- Terceiro, atribua o resultado ao peso do lado esquerdo.
O operador de incremento ou decremento postfix altera o valor após a avaliação da instrução. Por exemplo:
let weight = 90;
let newWeight = weight++ + 5;
console.log(newWeight); // 95
console.log(weight); // 91
Linguagem de código: JavaScript ( javascript )
Como funciona.
- Primeiro, adicione cinco a
weight
(90) e atribua o resultado anewWeight
(95) - Segundo, adicione um à
weight
variável depois que a segunda instrução for concluída, o peso passa a ser 91. - Terceiro, exiba ambos
newWeight
eweight
para o console.
Ao aplicar o operador de incremento/decremento a um valor não numérico, ele executa as seguintes etapas:
- Primeiro, converta o valor em um número usando as mesmas regras do operador unário mais (+).
- Em seguida, adicione ou subtraia um do valor.
Resumo
- Os operadores unários trabalham com um valor.
- Unário mais (
+
) ou menos (-
) converte um valor não numérico em um número. O menos unário nega o valor após a conversão. - O operador de incremento de prefixo adiciona um a um valor. O valor é alterado antes da instrução ser avaliada.
- O operador de incremento postfix adiciona um a um valor. O valor é alterado após a avaliação da instrução.
- O operador de decremento de prefixo subtrai um de um valor. O valor é alterado antes da instrução ser avaliada.
- O operador de decremento postfix subtrai um de um valor. O valor é alterado após a avaliação da instrução.