Operadores em Javascript

Operadores em Javascript não são uma novidade se você está seguindo a nossa série de artigos sobre a linguagem. Apesar de eu não ter falado (leia-se: escrito) especificamente sobre eles, venho postando vários exemplos que têm operadores, principalmente o operador de atribuição (=), que está presente em praticamente todos os nossos exemplos anteriores. Porém, é necessário que você entenda como eles funcionam e como utilizá-los para criar suas aplicações JS.

Em Javascript existem vários tipos de operadores, como os lógicos, aritméticos, de strings, de atribuição, unários, de comparação, bit a bit, além de alguns outros. Cada um desses operadores pode ser utilizados tanto com valores explícitos como com variáveis (até funções e objetos), para somar, subtrair, comparar e milhares de outras funções que vão dar lógica e fluxo à sua aplicação.

Operadores em Javascript

O primeiro operador que você deve ter percebido em nossos exemplos, foi o sinal de igual (=), um operador de atribuição:

var cadeMeuValor = "Estou Aqui";

Este operador funciona conforme estamos acostumados a ver em qualquer lugar, o item da esquerda recebe o valor da direita por atribuição, ou resumindo: isso é igual a aquilo e ponto (e vírgula no caso).

Você pode atribuir praticamente o que quiser à sua variável, como mostro abaixo:

var minhaString = "Uma string";
var outraVariável = minhaString;
var ambosOsValores = outraVariável + ' uma string';
var umaFunção = func();
var umArray = new Array();

E assim por diante.

Depois de atribuir um valor para uma variável, dependendo das propriedades desse valor é possível utilizá-las com a variável que as recebeu. Por exemplo: se eu criar um array em Javascript atribuindo seu valor para uma variável, eu posso (e devo) acessar as chaves desse array utilizando o nome da variável.

// Atribui o valor do array à variável
var meuArray = new Array();

// Atribui um valor qualquer em uma chave do array
meuArray[0] = 'Qualquer valor';

// Exibe o valor da chave 0 do array como um alerta
alert( meuArray[0] );

Veremos arrays posteriormente nessa série de artigos sobre Javascript, por agora vejamos os demais operadores.

Operadores aritméticos

Se você gosta de matemática aqui é seu lugar em Javascript, você pode fazer qualquer tipo de conta que quiser com os operadores aritméticos + (sinal de mais), (sinal de menos), / (sinal de divisão), * (sinal de multiplicação) e % (o resto da divisão). Exemplo:

var resultado = 1 + 1; // 2
var a = 2;
var b = 4;
var c = a * b; // 8

Além disso, você também pode fazer várias contas em uma mesma linha. Por exemplo:

var d = e + f + g;

Porém, os operadores de multiplicação (*), divisão (/) e resto da divisão (%) têm precedência sobre os operadores de adição (+) e subtração (-), exemplo:

var c = 3 + 2 / 2 - 1;

O resultado da conta acima da 3. A lógica é 2 / 2 = 1, 3 + 1 – 1 = 3.

Para mudar isso você pode utilizar parênteses para fazer o cálculo entre os resultados das somas (ou as contas que deseja fazer primeiro), por exemplo:

// Agora o resultado é 5
var c = ( 3 + 2 ) / ( 2 - 1 );

Outro ponto interessante é que, com exceção do operador de adição (+), não é possível somar tipos de dados string com tipos de dados numéricos, por exemplo:

var c = 'a' * 2;

Isso gera um valor NaN, ou melhor, não é um número válido em Javascript.

Sei que é meio óbvio, mas eu tinha que falar.

Concatenação

A exceção à regra é que quando utilizamos o operador de adição (+) entre uma string e um valor numérico. Neste caso temos uma concatenação (junção) dos valores, exemplo:

var c = 'a' + 2; // Agora o valor será a2

Concatenação é bastante útil em Javascript, você vai utilizar isso demais posteriormente.

Veja um exemplo útil para unir o valor de várias variáveis:

var a = 'Meu ';
var b = 'nome ';
var c = a + b + 'é Luiz.';

// Resultado de c: Meu nome é Luiz
alert( c );

Operadores unários

Os operadores unários são operadores que podem ser de incremento, decremento e valores negativos:

  • ++ *dois sinais de adição) Incrementa 1 ao operando
  • (dois sinais de subtração) Diminui 1 do operando
  • (um sinal de subtração) Representa um valor negativo

Veja alguns exemplos

// Atribui o valor 1
var a = 1;

// Transforma a (1) em negativo (-1)
var b = -a;

// Incrementa 1 ao valor de a (-1)
b++;

// Resultado é 0
alert( b );

Mais um exemplo:

// Atribui o valor 333
var a = 333;
a--;

// Resultado é 332
alert( a );

Os valores de incremento e decremento podem ser anteriores, ou posteriores, ou seja, podem vir antes ou depois do variável a ser incrementada ou decrementada.

a++;
++a;

A diferença neste caso é que se você utilizar o operador unário antes da variável, seu valor será ajustado antes do resultado ser atribuído, e se o utilizar após a variável, o resultado é atribuído e só depois o valor da variável será ajustado.

var a = 1;
var b = ++a; // Valor de a e de b é 2
var c = a++; // Valor de c é 2, mas de a agora é 3

Operador de atribuição + Operador aritmético

Você também pode juntar o operador de atribuição com um dos operadores aritméticos, por exemplo:

var a = 2;

a += 1; // 3
a *= 2; // 6
a /= 1; // 6
a -= 1; // 5

Neste caso seria o mesmo que fazer isso:

var a = 2;

a = a + 1; // 3
a = a * 2; // 6
a = a / 1; // 6
a = a - 1; // 5

Concluindo

Além dos operadores descritos neste artigo, você também pode ler a tabela encontrada em JavaScript – Operadores – MSPC, muito útil para aprimorar ainda mais seus conhecimentos.

Seguem mais alguns links que falam sobre Operadores Javascript (gringos):

Outras aulas

Se você perdeu a aula anterior, segue o link:

Próxima aula:

Caso queira visualizar todas as aulas dessa sessão em ordem cronológica invertida: