Operational error loop For / In

0

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

Why declare the data variable before for / in is required?

    
asked by anonymous 29.05.2018 / 16:55

2 answers

3

Why not declare, where will you store the content during the loop? The variable must exist to receive the value. But it need not necessarily be before the bond; can be inside of it too, which I find particularly readable.

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);

I put a console.log at the end showing that the dados variable still exists even outside the loop. Depending on your taste, you may find that this pollutes the overall scope, because a variable that is used in only one specific location continues to exist outside of it. If so and you want to avoid such an occurrence, you can use 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);

What is the difference between declaring variables using let and var?

    
29.05.2018 / 17:06
3

No need, it can be inside the loop, it's even ideal:

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