Operadores unários JavaScript explicados

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); // 10Linguagem 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 falsepara 0, truepara1
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); // 10Linguagem de código:  JavaScript  ( javascript )

O exemplo a seguir usa o operador unário mais ( +) para converter um valor booleano em um número, falseto 0e trueto 1.

let f = false,
    t = true;

console.log(+f); // 0
console.log(+t); // 1Linguagem de código:  JavaScript  ( javascript )

Saída:

0
1

Suponha que você tenha um productobjeto 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 personobjeto 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 personobjeto:

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 personobjeto 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); // -10Linguagem 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); // 26Linguagem de código:  JavaScript  ( javascript )

É equivalente ao seguinte:

let age = 25;
age = age + 1;
console.log(age); // 26Linguagem 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); // 89Linguagem de código:  JavaScript  ( javascript )

É equivalente ao seguinte:

let weight = 90;
weight = weight - 1;

console.log(weight); // 89Linguagem 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); // 96Linguagem 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); // 94Linguagem 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); // 91Linguagem de código:  JavaScript  ( javascript )

Como funciona.

  • Primeiro, adicione cinco a weight(90) e atribua o resultado a newWeight(95)
  • Segundo, adicione um à weightvariável depois que a segunda instrução for concluída, o peso passa a ser 91.
  • Terceiro, exiba ambos newWeighte weightpara 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *