--- title: for slug: Web/JavaScript/Reference/Statements/for translation_of: Web/JavaScript/Reference/Statements/for ---
A instrução for cria um loop que consiste em três expressões opcionais, dentro de parênteses e separadas por ponto e vírgula, seguidas por uma declaração ou uma sequência de declarações executadas em sequência.
A fonte desse exemplo interativo está armazenada em um repositório do GitHub. Se você gostaria de contribuir com os projetos de exemplos interativos, por favor clone https://github.com/mdn/interactive-examples e nos envie um pull request (requisição para puxar).
for ([inicialização]; [condição]; [expressão final]) declaração
inicializaçãovar. Essas variáveis não são locais no loop, isto é, elas estão no mesmo escopo que o loop for está. Variáveis declaradas com let são locais para a declaração.condiçãodeclaração será executado. Este teste da condição é opcional. Se omitido, a condição sempre será avaliada como verdadeira. Se a expressão for avaliada como falsa, a execução irá para a primeira expressão após a construção loop for.expressão finaldeclaração({...}) para agrupar essas condições. Para não executar declarações dentro do loop, use uma instrução vazia (;).forA declaração for começa declarando a variável i e inicializando-a como 0. Ela verifica se i é menor que nove, executa as duas instruções subsequentes e incrementa 1 a variável i após cada passagem pelo loop.
for (var i = 0; i < 9; i++) {
console.log(i);
// more statements
}
for opcionaisTodas as três expressões na condição do loop for são opcionais.
Por exemplo, no bloco de inicialização, não é necessário inicializar variáveis:
var i = 0;
for (; i < 9; i++) {
console.log(i);
// more statements
}
Assim como ocorre no bloco de inicialização, a condição também é opcional. Se você está omitindo essa expressão, você deve certificar-se de quebrar o loop no corpo para não criar um loop infinito.
for (var i = 0;; i++) {
console.log(i);
if (i > 3) break;
// more statements
}
Você também pode omitir todos os três blocos. Novamente, certifique-se de usar uma instrução break no final do loop e também modificar (incrementar) uma variável, para que a condição do break seja verdadeira em algum momento.
var i = 0;
for (;;) {
if (i > 3) break;
console.log(i);
i++;
}
for sem uma declaração O ciclo for a seguir calcula a posição de deslocamento de um nó na seção [expressão final] e, portanto, não requer o uso de uma declaração ou de um bloco de declaração, e no seu lugar é usado um ponto-vírgula - ;.
function showOffsetPos (sId) {
var nLeft = 0, nTop = 0;
for (var oItNode = document.getElementById(sId); // inicialização
oItNode; // condition
nLeft += oItNode.offsetLeft, nTop += oItNode.offsetTop, oItNode = oItNode.offsetParent) // expressão final
/* empty statement */ ;
console.log("Offset position of \"" + sId + "\" element:\n left: " + nLeft + "px;\n top: " + nTop + "px;");
}
// Exemplo de call:
showOffsetPos("content");
// Resultado:
// "Offset position of "content" element:
// left: 0px;
// top: 153px;"
| Especificação | Status | Comentário |
|---|---|---|
| ECMAScript 1st Edition. | Padrão |
Definição inicial. |
| {{SpecName('ES5.1', '#sec-12.6.3', 'for statement')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES6', '#sec-for-statement', 'for statement')}} | {{Spec2('ES6')}} |
{{CompatibilityTable}}
| Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Suporte Básico | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Característica | Android | Chrome para Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Suporte Básico | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
do...whilefor...infor...of