Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

179
Visualizações
¿Por qué cambia el resultado cuando la variable se declara dentro del bucle while?

Tengo dos funciones simples aquí. En la función de loop , he definido facky como uno en la parte superior de la función. Dos cosas que no entiendo:

  1. La respuesta a console.log(loop(5)) es 120 cuando facky se define en la parte superior del loop
  2. Cuando muevo var facky = 1; dentro del ciclo while, la respuesta es 2. Entiendo por qué esto es dos. Lo que no entiendo es por qué el comportamiento es diferente cuando la variable está afuera.

 function loop(size) { while (size > 1) { var facky = 1; facky = facky * size; size = size - 1; } clunk(facky); } function clunk(times) { var num = times; while (num > 0) { console.log("clunk"); num = num - 1; } } loop(5);

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

En su ciclo while, cada vez que el ciclo itera, facky se restablece a 1, por lo que solo se imprimirá dos veces porque la última iteración del ciclo while multiplica facky por 2.

Cuando mueve la declaración fuera del ciclo while, facky no se reinicia después de cada iteración y toma el valor de 5! , o 120 después de la iteración final.

about 4 years ago · Juan Pablo Isaza Relatório

0

No debe declarar una variable dentro de un ciclo. Prueba esto en su lugar:

 function loop(size) { var facky = 1; while (size > 1) { facky = facky * size; size = size - 1; } clunk(facky); }
about 4 years ago · Juan Pablo Isaza Relatório

0

Realmente no importa dónde declares la var facky , siempre tiene un alcance de función.

Lo que importa es si reinicia facky = 1 en cada iteración de su ciclo, o si solo lo inicializa una vez antes del ciclo.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda