Fork me on GitHub

Getting Started

Um guia para iniciantes na área de web.

Declarações (Statements)

Entendendo Controles de Fluxo e Controles de Repetição

Controles de Fluxo

São comandos da linguagem que permitem desviar o fluxo do programa, dependendo de um teste.

IF

A sintaxe do if é a seguinte:

if (<teste>) {
  <código a ser executado caso o teste seja verdadeiro>
}

Podemos, por exemplo, executar um trecho do código unicamente se uma variavel nossa for maior do que dez.

var x = 11;
if (x > 10) {
  console.log('x é maior do que dez, corram para as colinas!');
}

Note, que o console.log não apareceria caso o valor de x fosse 10, 9, 8...

var x = 9;
if (x > 10) {
  console.log('x é maior do que dez, corram para as colinas!');
}
console.log('Serei executado independente do if ser true ou false');

ELSE

o else não existe sem o if, pois ele não testa nada. Só é executado caso o teste do if retorne falso.

var x = 9;
if (x > 10) {
  console.log('x é maior do que dez, corram para as colinas!');
} else {
  console.log('Está tudo bem, podemos ficar tranquilos.');
}

SWITCH

O switch é uma estrutura para testes simples, muito usado quando temos que testar uma mesma condição diversas vezes, pois é mais legível do que uma cadeia de else if.

var tinta = 'azul';
switch (tinta) {
  case 'azul':
    console.log('Irei pintar o carro de azul');
    break;
  case 'amarela':
    console.log('Vou pintar a casa de amarelo');
    break;
  case 'verde':
    console.log('Vou pintar o chão da garagem de verde');
    break;
  default:
    console.log('Não vou pintar nada');
    break;
}

Note que para cada uma das cores, eu farei uma coisa completamente diferente da outra. Caso a tinta seja verde, eu vou pintar o chão da garagem, mas se a tinha for amarela, irei pintar a casa.

Se fossemos reescrever esses testes com elseif, ficaria assim:

var tinta = 'azul';

if (tinta === 'azul') {
  console.log('Irei pintar o carro de azul');
} else if(tinta === 'amarela') {
  console.log('Vou pintar a casa de amarelo');
} else if (tinta === 'verde') {
  console.log('Vou pintar o chão da garagem de verde');
} else {
  console.log('Não vou pintar nada');
}

Fica melhor com o switch, ne?!

Laços de repetição (loops)

Se existe uma coisa que os computadores são muito bons é em executar algo várias vezes. Desde que saibamos o que queremos que o computador faça. Felizmente, para não precisamos repetir inúmeras vezes a invocação de uma função ou certo código, existe os loops (laços de repetição).

FOR

Formado por três partes: inicialização, condição e incremento. A sintaxe é:

for (var i = 0; i <= 10; i++) {
  //código a ser executado até a condição se tornar falsa
}

FOR IN

É utilizado quando não sabemos quantas vezes temos que interar sobre um array ou objeto.

var arr = [1,2,3];
for(var n in arr) {
  console.log(n);
}

FOREACH

Utilizamos o foreach quando queremos percorrer as propriedades de um objeto ou os itens de um array, sem precisamos nos preocupar em contar quantos são.

var arr = [1,2,3];
arr.forEach(function(each){
  console.log(each);
});

WHILE

Funciona basicamente igual ao for, e é possível sempre trocar o for() por um while(). Escolhemos um ou outro pela clareza do que estamos fazendo. Geralmente preferimos utilizar o loop for() para interar com contadores e loops while() até que alguma condição mude (de true para false, por exemplo).

var x = true;
while(x) {
  console.log('Jane Doe');
  x = false;
}

Nesse caso acima, o console.log será executado uma única vez, pois eu altero para false a variavel x, logo na primeira interação do laço. Mas eu poderia ter feito algo assim:

var i = 1,
    x = 2;

while(x < 20) {
  x = x + (x * i);

  console.log('O valor atual de x é: ' + x);
  i++;
}

DO WHILE

Segue o mesmo princípio do while, mas o corpo é sempre executado pelo menos uma vez, independente da condição, pois primeiro ele faz do e depois testa a condição.

do {
  console.log('Jane Doe');
} while(false);

Apesar da condição já começar como falsa, veremos a string "Jane Doe" uma vez no console do browser.