TransWikia.com

Explicação do funcionamento de declaração de variável de loop For/In

Stack Overflow em Português Asked by user106463 on November 5, 2021

var meusDados = {
    nome: 'Bruno Coelho',
    email: '[email protected]',
    idade: 23
};
var dados;
for(dados in meusDados){
    console.log(meusDados[dados]);
}

Por que declarar a variável dados antes do for/in é necessário?

2 Answers

Porque se não declarar, onde irá armazenar o conteúdo durante o laço? A variável precisa existir para receber o valor. Mas não precisa ser necessariamente antes do laço; pode ser dentro dele também, o que, particularmente, acho mais legível.

var meusDados = {
    nome: 'Bruno Coelho',
    email: '[email protected]',
    idade: 23
};

for(var dados in meusDados){
    console.log(meusDados[dados]);
}

// Perceba que dados continua existindo fora do laço
console.log(dados);

Coloquei um console.log ao final mostrando que a variável dados continua existindo mesmo fora do laço. Dependendo do seu gosto, pode achar que isso polui o escopo global, pois uma variável que é utilizada em apenas um local específico continua existindo fora dele. Se assim for e deseja evitar tal ocorrência, pode utilizar o let:

const meusDados = {
    nome: 'Bruno Coelho',
    email: '[email protected]',
    idade: 23
};

for(let dados in meusDados){
    console.log(meusDados[dados]);
}

// Perceba que dados NÃO continua existindo fora do laço
console.log(dados);

Qual é a diferença entre declaração de variáveis usando let e var?

Answered by Woss on November 5, 2021

Não precisa, pode ser dentro do laço, é até o ideal:

var meusDados = {
    nome: 'Bruno Coelho',
    email: '[email protected]',
    idade: 23
};
for (var dados in meusDados) {
    console.log(meusDados[dados]);
}

Coloquei no GitHub para referência futura.

Answered by Maniero on November 5, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP