Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

170
Views
En Javascript, ¿por qué 'while (true') es más lento que 'for (...)' cuando ambos iteran la misma cantidad de veces?

Suponiendo que while(true) se romperá al mismo tiempo que el bucle for(...) , ¿por qué for(...) es más rápido?

Según jsbench , es aproximadamente un 7% más lento usar while(true)

Aquí está el código que he usado en jsbench:

Usando un bucle while(true)

 /* generate array */ const arr = [] for(let i = 0; i < 1000; i++){ arr.push(i) } let i = 0 while(true){ if(arr[i] >= 900){ return; } i++ }

usando un bucle for(...) :

 /* generate array */ const arr = [] for(let i = 0; i < 1000; i++){ arr.push(i) } for(let i = 0; i < arr.length; i++){ if(arr[i] >= 900){ return; } }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El tiempo tiene que ver tanto con su código como con la forma en que se compila JavaScript. Sin embargo, las diferencias son bastante intrascendentes en este ejemplo, por lo que probar cuál es más rápido varía cada vez que se ejecuta el código y los resultados son bastante indeterminados. En general, deberían tomar aproximadamente el mismo tiempo o un poco más rápido o más lento.

Tu codigo

Su ciclo while continuará simplemente porque tiene la condición establecida para que siempre sea true . No incluyó una condición para verificar si debe detenerse en algún punto después de completar cada iteración.

Su ciclo for , por otro lado, tiene una condición que se verifica cada vez que se completa una iteración (comprobando si i < arr.length todavía).

Aparte de eso, su código es más o menos el mismo. Ambos tienen el mismo bloque de código, la diferencia es que el ciclo while incrementa i dentro de su bloque de código, en lugar del ciclo for que incrementa i después de su bloque de código interno.

Las diferencias en este caso son bastante intrascendentes.

Compilacion

Si alguna vez ha estudiado algo de código ensamblador, debería estar un poco familiarizado con algunas de las estructuras para bucles.

Dependiendo de cómo se compile el código, se determina qué operaciones/instrucciones se ejecutan y en qué orden. Además, la estructura de un ciclo while generalmente debe ser diferente de un ciclo for en ensamblador, lo que significa que puede haber una instrucción adicional para ejecutar en un ciclo for versus un ciclo while o viceversa, según el lenguaje de programación.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!