Operadores de Adição ECMAScript

Na maioria das linguagens de programação, o operador aditivo (ou seja, o sinal de mais ou menos) é o operador matemático mais simples.

No ECMAScript, o operador aditivo tem muitos comportamentos especiais.

Operador de adição

O operador de adição é representado pelo sinal de mais (+):

var iResult = 1 + 2

Como os operadores multiplicativos, a adição em ECMAScript tem alguns comportamentos especiais ao lidar com valores especiais:

  • Se algum operando for NaN, o resultado será NaN.
  • -Infinity mais -Infinity, o resultado é -Infinity.
  • Infinity mais -Infinity, o resultado é NaN.
  • +0 mais +0, o resultado é +0.
  • -0 mais +0, o resultado é +0.
  • -0 mais -0, o resultado é -0.

No entanto, se algum operando for uma string, siga as seguintes regras:

  • Se ambos os operandos forem strings, concatene o segundo string ao primeiro.
  • Se apenas um operando for uma string, converta o outro operando em string e o resultado será a concatenação dos dois strings.

Por exemplo:

var result = 5 + 5; // Dois números
alert(result); // Saída "10"
var result2 = 5 + "5"; // Um número e uma string
alert(result2); // Saída "55"

Este código ilustra a diferença entre os dois modos do operador de adição. Normalmente, 5 + 5 é igual a 10 (valor original), como mostrado nas duas primeiras linhas do código acima. No entanto, se substituirmos um operando pelo string "5", o resultado será "55" (valor de string original), porque o outro operando também será convertido em string.

Atenção:Para evitar um erro comum no JavaScript, certifique-se sempre de verificar o tipo de dados dos operandos ao usar o operador de adição.

Operador de subtração

O operador de subtração (-) é também um operador comum:

var iResult = 2 - 1;

Como o operador de adição, o operador de subtração também possui alguns comportamentos especiais ao lidar com valores especiais:

  • Se algum operando for NaN, o resultado será NaN.
  • Infinity menos Infinity, o resultado é NaN.
  • -Infinity menos -Infinity, o resultado é NaN.
  • Infinity menos -Infinity, o resultado é Infinity.
  • -Infinity menos Infinity, o resultado é -Infinity.
  • +0 menos +0, o resultado é +0.
  • -0 menos -0, o resultado é -0.
  • +0 menos -0, o resultado é +0.
  • Se algum operador não for um número, o resultado será NaN.

Nota:Se todos os operandos forem números, execute a subtração usual e retorne o resultado.