Este es mi fragmento de código
const loopFn = function(num) { for(let a = 0; a < num || 10; a++) { console.log(a) } } let b = loopFn(8) console.log(b) Sé que la forma correcta de escribir es a < (num || 10) , solo tengo curiosidad por saber por qué provoca un bucle infinito en lugar de informar un error.
Lo que quieres decir con hacer es
const count = num || 10; for(let a = 0; a < count; a++) { console.log(a) } Pero lo que en realidad estás haciendo es decir que mientras a es menor que 8 O 10 es true
El motor de idioma/ejecución no lo informa como un error porque no hay un problema inherente con los bucles infinitos en sí.
Dependiendo del caso de uso, los bucles infinitos son de ayuda. Por ejemplo, en scripts daemon destinados a procesar trabajos de una cola.
La condición de su ciclo for es:
a < num || 10Si a < num es verdadero, o 10 es verdadero, el ciclo continúa.
Pruebe en la consola de su navegador y verá que 10 siempre es cierto. si (10) alerta ("verdadero")
Si desea que el ciclo finalice si a no es < 10, intente esto:
for(let a = 0; a < num || a < 10; a++)